react-native-firework-sdk 2.0.0-beta.1 → 2.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +1 -1
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModel.kt +10 -0
  4. package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelDeserializer.kt +21 -0
  5. package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModel.kt +11 -0
  6. package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +24 -0
  7. package/android/src/main/java/com/fireworksdk/bridge/models/FWSystemTypeface.kt +9 -0
  8. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModel.kt +1 -0
  9. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt +4 -1
  10. package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +24 -1
  11. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +1 -1
  12. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +29 -12
  13. package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +33 -6
  14. package/ios/Components/VideoFeed.swift +12 -23
  15. package/ios/Components/VideoPlayerConfiguration.swift +0 -5
  16. package/ios/FireworkSdk.xcodeproj/project.pbxproj +4 -0
  17. package/ios/Models/NativeToRN/FireworkEventName.swift +1 -0
  18. package/ios/Models/RNToNative/RCTConvert+FireworkSDKModule.swift +20 -0
  19. package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +30 -5
  20. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -1
  21. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +13 -3
  22. package/ios/Modules/FireworkSDKModule/SDKInitOptions.swift +29 -0
  23. package/lib/commonjs/FireworkSDK.js +42 -26
  24. package/lib/commonjs/FireworkSDK.js.map +1 -1
  25. package/lib/commonjs/VideoShopping.js.map +1 -1
  26. package/lib/commonjs/components/StoryBlock.js +20 -5
  27. package/lib/commonjs/components/StoryBlock.js.map +1 -1
  28. package/lib/commonjs/components/VideoFeed.js +22 -19
  29. package/lib/commonjs/components/VideoFeed.js.map +1 -1
  30. package/lib/commonjs/index.js +6 -0
  31. package/lib/commonjs/index.js.map +1 -1
  32. package/lib/commonjs/models/AndroidFontInfo.js +2 -0
  33. package/lib/commonjs/models/AndroidFontInfo.js.map +1 -0
  34. package/lib/commonjs/models/FWEventName.js +1 -0
  35. package/lib/commonjs/models/FWEventName.js.map +1 -1
  36. package/lib/commonjs/models/SDKInitOptions.js +2 -0
  37. package/lib/commonjs/models/SDKInitOptions.js.map +1 -0
  38. package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
  39. package/lib/module/FireworkSDK.js +43 -25
  40. package/lib/module/FireworkSDK.js.map +1 -1
  41. package/lib/module/VideoShopping.js.map +1 -1
  42. package/lib/module/components/StoryBlock.js +18 -5
  43. package/lib/module/components/StoryBlock.js.map +1 -1
  44. package/lib/module/components/VideoFeed.js +20 -18
  45. package/lib/module/components/VideoFeed.js.map +1 -1
  46. package/lib/module/index.js +1 -1
  47. package/lib/module/index.js.map +1 -1
  48. package/lib/module/models/AndroidFontInfo.js +2 -0
  49. package/lib/module/models/AndroidFontInfo.js.map +1 -0
  50. package/lib/module/models/FWEventName.js +1 -0
  51. package/lib/module/models/FWEventName.js.map +1 -1
  52. package/lib/module/models/SDKInitOptions.js +2 -0
  53. package/lib/module/models/SDKInitOptions.js.map +1 -0
  54. package/lib/module/modules/FireworkSDKModule.js +1 -2
  55. package/lib/module/modules/FireworkSDKModule.js.map +1 -1
  56. package/lib/typescript/FireworkSDK.d.ts +23 -14
  57. package/lib/typescript/LiveStream.d.ts +2 -2
  58. package/lib/typescript/VideoShopping.d.ts +4 -4
  59. package/lib/typescript/components/StoryBlock.d.ts +6 -2
  60. package/lib/typescript/components/VideoFeed.d.ts +9 -2
  61. package/lib/typescript/index.d.ts +7 -3
  62. package/lib/typescript/models/AdBadgeConfiguration.d.ts +1 -1
  63. package/lib/typescript/models/AndroidFontInfo.d.ts +14 -0
  64. package/lib/typescript/models/FWEventName.d.ts +1 -0
  65. package/lib/typescript/models/IOSFontInfo.d.ts +2 -2
  66. package/lib/typescript/models/SDKInitOptions.d.ts +6 -0
  67. package/lib/typescript/models/StoryBlockSource.d.ts +1 -1
  68. package/lib/typescript/models/VideoFeedConfiguration.d.ts +9 -12
  69. package/lib/typescript/models/VideoFeedSource.d.ts +1 -1
  70. package/lib/typescript/models/VideoPlayerConfiguration.d.ts +4 -9
  71. package/lib/typescript/modules/FireworkSDKModule.d.ts +4 -3
  72. package/package.json +7 -4
  73. package/src/FireworkSDK.ts +42 -24
  74. package/src/VideoShopping.ts +3 -7
  75. package/src/components/StoryBlock.tsx +22 -4
  76. package/src/components/VideoFeed.tsx +24 -11
  77. package/src/index.ts +10 -1
  78. package/src/models/AndroidFontInfo.ts +14 -0
  79. package/src/models/FWEventName.ts +1 -0
  80. package/src/models/SDKInitOptions.ts +7 -0
  81. package/src/models/VideoFeedConfiguration.ts +8 -11
  82. package/src/models/VideoPlayerConfiguration.ts +1 -7
  83. package/src/modules/FireworkSDKModule.ts +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["VideoFeed.tsx"],"names":["React","findNodeHandle","Platform","UIManager","FireworkSDK","FWEventName","FireworkSDKModuleEventEmitter","FWLoggerUtil","FWVideoFeed","NativeComponentName","VideoFeed","Component","createRef","log","JSON","stringify","props","nativeNodeHandle","nativeComponentRef","current","commandId","getViewManagerConfig","Commands","refresh","OS","toString","dispatchViewManagerCommand","event","nativeEvent","onVideoFeedLoadFinished","name","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","addListener","ShareBaseURLUpdated","setState","subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","componentWillUnmount","forEach","value","remove","render","source","channel","playlist","playlistGroup","mode","adConfiguration","enablePictureInPicture","videoFeedConfiguration","_getVideoFeedConfiguration","titleHidden","title","hidden","titlePosition","customLayoutName","shareBaseURL","getInstance","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","dynamicContentParametersString","_generateDynamicContentParametersString","enableAutoplay","enablePictureInPictureLegacy","gridColumns","requiresAds","adsFetchTimeout","vastAttributesString","_generateVastAttributesString","showAdBadge","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.The playlistGroup is only supported on iOS\n */\n source: VideoFeedSource;\n /**\n * Channel id of the feed. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the feed. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * PlaylistGroup id of the feed. Required when the source is set as playlistGroup. Only supported on iOS.\n */\n playlistGroup?: string;\n /**\n * The dynamic content parameters of the feed. Required when the source is set as dynamicContent.\n */\n dynamicContentParameters?: { [key: string]: string[] };\n /**\n * One of three available display modes. Defaults to row.\n */\n mode?: VideoFeedMode;\n /**\n * Configuration of the feed.\n */\n videoFeedConfiguration?: VideoFeedConfiguration;\n /**\n * Configuration of the player.\n */\n videoPlayerConfiguration?: VideoPlayerConfiguration;\n /**\n * Ad configuration of the feed. Only supported on iOS.\n */\n adConfiguration?: AdConfiguration;\n /**\n * Specifies if Picture in Picture is enabled.\n */\n enablePictureInPicture?: boolean;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined. Only supported on iOS.\n */\n onVideoFeedLoadFinished?: (error?: FWError) => void;\n}\n\nconst NativeComponentName = 'FWVideoFeed';\n\nexport default class VideoFeed extends React.Component<IVideoFeedProps> {\n static defaultProps = {\n mode: 'row',\n };\n\n nativeComponentRef = React.createRef<any>();\n\n subscriptions: EmitterSubscription[] = [];\n\n /**\n * Force refreshing the video feed.\n */\n public refresh = () => {\n FWLoggerUtil.log(`VideoFeed refresh ${JSON.stringify(this.props)}`);\n\n const nativeNodeHandle = findNodeHandle(this.nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands.refresh;\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(nativeNodeHandle),\n commandId,\n []\n );\n };\n\n private _onVideoFeedLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedLoadFinished ${JSON.stringify(event.nativeEvent)}`\n );\n const { onVideoFeedLoadFinished } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedLoadFinished) {\n if (name) {\n if (reason) {\n onVideoFeedLoadFinished({ name, reason });\n } else {\n onVideoFeedLoadFinished({ name });\n }\n } else {\n onVideoFeedLoadFinished();\n }\n }\n };\n\n componentDidMount() {\n FWLoggerUtil.log(\n `VideoFeed componentDidMount ${JSON.stringify(this.props)}`\n );\n\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfShareBaseURLUpdated);\n\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);\n }\n\n componentWillUnmount() {\n FWLoggerUtil.log(\n `VideoFeed componentWillUnmount ${JSON.stringify(this.props)}`\n );\n\n this.subscriptions.forEach((value) => {\n value.remove();\n });\n\n this.subscriptions = [];\n }\n\n render() {\n FWLoggerUtil.log(`VideoFeed render ${JSON.stringify(this.props)}`);\n\n const {\n source,\n channel = '',\n playlist = '',\n playlistGroup = '',\n mode = 'row',\n adConfiguration,\n enablePictureInPicture = false,\n } = this.props;\n const videoFeedConfiguration = this._getVideoFeedConfiguration();\n const titleHidden = videoFeedConfiguration?.title?.hidden ?? false;\n const titlePosition = videoFeedConfiguration?.titlePosition ?? 'nested';\n const customLayoutName = videoFeedConfiguration?.customLayoutName ?? '';\n const shareBaseURL = FireworkSDK.getInstance().shareBaseURL ?? '';\n const adBadgeConfiguration =\n FireworkSDK.getInstance().adBadgeConfiguration ?? {};\n const adBadgeTextType = adBadgeConfiguration.badgeTextType ?? '';\n const backgroundColorOfAdBadge = adBadgeConfiguration.backgroundColor ?? '';\n const textColorOfAdBadge = adBadgeConfiguration.textColor ?? '';\n const dynamicContentParametersString =\n this._generateDynamicContentParametersString();\n const enableAutoplay = videoFeedConfiguration?.enableAutoplay ?? false;\n\n let enablePictureInPictureLegacy = false;\n if (videoFeedConfiguration) {\n enablePictureInPictureLegacy =\n (videoFeedConfiguration as any).enablePictureInPicture ?? false;\n }\n const gridColumns = videoFeedConfiguration?.gridColumns ?? 2;\n const requiresAds = adConfiguration?.requiresAds ?? false;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout ?? 10;\n const vastAttributesString = this._generateVastAttributesString();\n const showAdBadge = videoFeedConfiguration?.showAdBadge ?? false;\n\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\n return (\n <FWVideoFeed\n key={key}\n {...this.props}\n ref={this.nativeComponentRef}\n onVideoFeedLoadFinished={this._onVideoFeedLoadFinished}\n mode={mode}\n style={Object.assign({}, this.props.style, { zIndex: -1 })}\n />\n );\n }\n\n private _generateDynamicContentParametersString(): string {\n const { dynamicContentParameters } = this.props;\n if (!dynamicContentParameters) {\n return '';\n }\n\n let resultString = '';\n const sortedKeyList = Object.keys(dynamicContentParameters).sort();\n for (const key of sortedKeyList) {\n const value = dynamicContentParameters[key];\n const valueString = value.join(',');\n if (resultString.length > 0) {\n resultString += '_';\n }\n\n resultString += `${key}:${valueString}`;\n }\n\n return resultString;\n }\n\n private _generateVastAttributesString(): string {\n const { adConfiguration } = this.props;\n const vastAttributes = adConfiguration?.vastAttributes ?? '';\n if (!vastAttributes) {\n return '';\n }\n\n let resultString = '';\n for (const attribute of vastAttributes) {\n if (resultString.length > 0) {\n resultString += '_';\n }\n resultString += `${attribute.name ?? ''}:${attribute.value}`;\n }\n\n return resultString;\n }\n\n private _getVideoFeedConfiguration(): VideoFeedConfiguration | undefined {\n const { videoFeedConfiguration } = this.props;\n if (!videoFeedConfiguration) {\n return videoFeedConfiguration;\n }\n\n if (\n videoFeedConfiguration.gridColumns &&\n Math.floor(videoFeedConfiguration.gridColumns!) !==\n videoFeedConfiguration.gridColumns\n ) {\n return {\n ...videoFeedConfiguration,\n gridColumns: Math.floor(videoFeedConfiguration.gridColumns!),\n };\n } else {\n return videoFeedConfiguration;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["VideoFeed.tsx"],"names":["React","findNodeHandle","Platform","UIManager","FireworkSDK","FWEventName","FireworkSDKModuleEventEmitter","FWLoggerUtil","FWVideoFeed","NativeComponentName","VideoFeed","Component","createRef","log","JSON","stringify","props","nativeNodeHandle","nativeComponentRef","current","commandId","getViewManagerConfig","Commands","refresh","OS","toString","dispatchViewManagerCommand","event","nativeEvent","onVideoFeedLoadFinished","name","reason","componentDidMount","subscriptionOfShareBaseURLUpdated","addListener","ShareBaseURLUpdated","setState","subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfVideoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","componentWillUnmount","forEach","value","remove","render","source","channel","playlist","playlistGroup","mode","adConfiguration","enablePictureInPicture","videoFeedConfiguration","_getVideoFeedConfiguration","titleHidden","title","hidden","titlePosition","shareBaseURL","getInstance","getShareBaseURL","adBadgeConfiguration","getAdBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","dynamicContentParametersString","_generateDynamicContentParametersString","enableAutoplay","gridColumns","requiresAds","adsFetchTimeout","vastAttributesString","_generateVastAttributesString","showAdBadge","videoLaunchBehavior","getVideoLaunchBehavior","key","_onVideoFeedLoadFinished","Object","assign","style","zIndex","dynamicContentParameters","resultString","sortedKeyList","keys","sort","valueString","join","length","vastAttributes","attribute","Math","floor"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n EmitterSubscription,\n findNodeHandle,\n NativeSyntheticEvent,\n Platform,\n StyleProp,\n UIManager,\n ViewStyle,\n} from 'react-native';\n\nimport FireworkSDK from '../FireworkSDK';\nimport type FWError from '../models/FWError';\nimport { FWEventName } from '../models/FWEventName';\nimport type AdConfiguration from '../models/AdConfiguration';\nimport type VideoFeedConfiguration from '../models/VideoFeedConfiguration';\nimport type { VideoFeedSource } from '../models/VideoFeedSource';\nimport type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWVideoFeed from './FWVideoFeed';\n\nexport type VideoFeedMode = 'row' | 'column' | 'grid';\n\n/**\n * The props of VideoFeed component.\n */\nexport interface IVideoFeedProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of five available video feed sources.The playlistGroup is only supported on iOS\n */\n source: VideoFeedSource;\n /**\n * Channel id of the feed. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the feed. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * PlaylistGroup id of the feed. Required when the source is set as playlistGroup. Only supported on iOS.\n */\n playlistGroup?: string;\n /**\n * The dynamic content parameters of the feed. Required when the source is set as dynamicContent.\n */\n dynamicContentParameters?: { [key: string]: string[] };\n /**\n * One of three available display modes. Defaults to row.\n */\n mode?: VideoFeedMode;\n /**\n * Configuration of the feed.\n */\n videoFeedConfiguration?: VideoFeedConfiguration;\n /**\n * Configuration of the player.\n */\n videoPlayerConfiguration?: VideoPlayerConfiguration;\n /**\n * Ad configuration of the feed. Only supported on iOS.\n */\n adConfiguration?: AdConfiguration;\n /**\n * Specifies if Picture in Picture is enabled.\n */\n enablePictureInPicture?: boolean;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined. Only supported on iOS.\n */\n onVideoFeedLoadFinished?: (error?: FWError) => void;\n}\n\nconst NativeComponentName = 'FWVideoFeed';\n\n/**\n * VideoFeed component.\n */\nclass VideoFeed extends React.Component<IVideoFeedProps> {\n static defaultProps = {\n mode: 'row',\n };\n\n nativeComponentRef = React.createRef<any>();\n\n subscriptions: EmitterSubscription[] = [];\n\n /**\n * Force refreshing the video feed.\n */\n public refresh = () => {\n FWLoggerUtil.log(`VideoFeed refresh ${JSON.stringify(this.props)}`);\n\n const nativeNodeHandle = findNodeHandle(this.nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands.refresh;\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(nativeNodeHandle),\n commandId,\n []\n );\n };\n\n private _onVideoFeedLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedLoadFinished ${JSON.stringify(event.nativeEvent)}`\n );\n const { onVideoFeedLoadFinished } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedLoadFinished) {\n if (name) {\n if (reason) {\n onVideoFeedLoadFinished({ name, reason });\n } else {\n onVideoFeedLoadFinished({ name });\n }\n } else {\n onVideoFeedLoadFinished();\n }\n }\n };\n\n componentDidMount() {\n FWLoggerUtil.log(\n `VideoFeed componentDidMount ${JSON.stringify(this.props)}`\n );\n\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfShareBaseURLUpdated);\n\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);\n\n const subscriptionOfVideoLaunchBehaviorUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.VideoLaunchBehaviorUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.VideoLaunchBehaviorUpdated');\n this.setState({});\n }\n );\n this.subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);\n }\n\n componentWillUnmount() {\n FWLoggerUtil.log(\n `VideoFeed componentWillUnmount ${JSON.stringify(this.props)}`\n );\n\n this.subscriptions.forEach((value) => {\n value.remove();\n });\n\n this.subscriptions = [];\n }\n\n render() {\n FWLoggerUtil.log(`VideoFeed render ${JSON.stringify(this.props)}`);\n\n const {\n source,\n channel = '',\n playlist = '',\n playlistGroup = '',\n mode = 'row',\n adConfiguration,\n enablePictureInPicture = false,\n } = this.props;\n const videoFeedConfiguration = this._getVideoFeedConfiguration();\n const titleHidden = videoFeedConfiguration?.title?.hidden ?? false;\n const titlePosition = videoFeedConfiguration?.titlePosition ?? 'nested';\n const shareBaseURL = FireworkSDK.getInstance().getShareBaseURL() ?? '';\n const adBadgeConfiguration =\n FireworkSDK.getInstance().getAdBadgeConfiguration() ?? {};\n const adBadgeTextType = adBadgeConfiguration.badgeTextType ?? '';\n const backgroundColorOfAdBadge = adBadgeConfiguration.backgroundColor ?? '';\n const textColorOfAdBadge = adBadgeConfiguration.textColor ?? '';\n const dynamicContentParametersString =\n this._generateDynamicContentParametersString();\n const enableAutoplay = videoFeedConfiguration?.enableAutoplay ?? false;\n\n const gridColumns = videoFeedConfiguration?.gridColumns ?? 2;\n const requiresAds = adConfiguration?.requiresAds ?? false;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout ?? 10;\n const vastAttributesString = this._generateVastAttributesString();\n const showAdBadge = videoFeedConfiguration?.showAdBadge ?? false;\n const videoLaunchBehavior =\n FireworkSDK.getInstance().getVideoLaunchBehavior() ?? 'default';\n\n let key = `source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_playlistGroup:${playlistGroup}`;\n key += `_mode:${mode}`;\n key += `_titleHidden:${titleHidden}`;\n key += `_titlePosition:${titlePosition}`;\n key += `_shareBaseURL:${shareBaseURL}`;\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_enableAutoplay:${enableAutoplay}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n key += `_gridColumns:${gridColumns}`;\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n key += `_showAdBadge:${showAdBadge}`;\n key += `_videoLaunchBehavior:${videoLaunchBehavior}`;\n\n return (\n <FWVideoFeed\n key={key}\n {...this.props}\n ref={this.nativeComponentRef}\n onVideoFeedLoadFinished={this._onVideoFeedLoadFinished}\n mode={mode}\n style={Object.assign({}, this.props.style, { zIndex: -1 })}\n />\n );\n }\n\n private _generateDynamicContentParametersString(): string {\n const { dynamicContentParameters } = this.props;\n if (!dynamicContentParameters) {\n return '';\n }\n\n let resultString = '';\n const sortedKeyList = Object.keys(dynamicContentParameters).sort();\n for (const key of sortedKeyList) {\n const value = dynamicContentParameters[key];\n const valueString = value.join(',');\n if (resultString.length > 0) {\n resultString += '_';\n }\n\n resultString += `${key}:${valueString}`;\n }\n\n return resultString;\n }\n\n private _generateVastAttributesString(): string {\n const { adConfiguration } = this.props;\n const vastAttributes = adConfiguration?.vastAttributes ?? '';\n if (!vastAttributes) {\n return '';\n }\n\n let resultString = '';\n for (const attribute of vastAttributes) {\n if (resultString.length > 0) {\n resultString += '_';\n }\n resultString += `${attribute.name ?? ''}:${attribute.value}`;\n }\n\n return resultString;\n }\n\n private _getVideoFeedConfiguration(): VideoFeedConfiguration | undefined {\n const { videoFeedConfiguration } = this.props;\n if (!videoFeedConfiguration) {\n return videoFeedConfiguration;\n }\n\n if (\n videoFeedConfiguration.gridColumns &&\n Math.floor(videoFeedConfiguration.gridColumns!) !==\n videoFeedConfiguration.gridColumns\n ) {\n return {\n ...videoFeedConfiguration,\n gridColumns: Math.floor(videoFeedConfiguration.gridColumns!),\n };\n } else {\n return videoFeedConfiguration;\n }\n }\n}\n\nexport default VideoFeed;\n"]}
@@ -8,5 +8,5 @@ import LiveStreamEventName from './models/LiveStreamEventName';
8
8
  import VideoPlaybackEventName from './models/VideoPlaybackEventName';
9
9
  import VideoShopping from './VideoShopping';
10
10
  export default FireworkSDK;
11
- export { FWNavigator, LiveStream, LiveStreamChatEventName, LiveStreamEventName, StoryBlock, VideoFeed, VideoPlaybackEventName, VideoShopping };
11
+ export { FireworkSDK, FWNavigator, LiveStream, LiveStreamChatEventName, LiveStreamEventName, StoryBlock, VideoFeed, VideoPlaybackEventName, VideoShopping };
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["StoryBlock","VideoFeed","FireworkSDK","FWNavigator","LiveStream","LiveStreamChatEventName","LiveStreamEventName","VideoPlaybackEventName","VideoShopping"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,yBAAvB;AAEA,OAAOC,SAAP,MAAsB,wBAAtB;AAOA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,WAAP,MAAwB,eAAxB;AAKA,OAAOC,UAAP,MAAuB,cAAvB;AAuBA,OAAOC,uBAAP,MAAoC,kCAApC;AAEA,OAAOC,mBAAP,MAAgC,8BAAhC;AAsBA,OAAOC,sBAAP,MAAmC,iCAAnC;AAgBA,OAAOC,aAAP,MAA0B,iBAA1B;AAEA,eAAeN,WAAf;AAEA,SAeEC,WAfF,EAqBEC,UArBF,EAuBEC,uBAvBF,EA0BEC,mBA1BF,EAqCEN,UArCF,EA2CEC,SA3CF,EAwDEM,sBAxDF,EAgEEC,aAhEF","sourcesContent":["import 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 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 UpdateProductDetailsEvent,\n VideoPlaybackEvent,\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 Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport type {\n AddToCartButtonConfiguration,\n LinkButtonConfiguration,\n} from './models/ProductInfoViewConfiguration';\nimport type ProductUnit from './models/ProductUnit';\nimport type { ProductPrice, ProductUnitOption } from './models/ProductUnit';\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 CustomClickCartIconCallback,\n CustomClickLinkButtonCallback,\n UpdateProductDetailsCallback,\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 CustomClickCartIconCallback,\n CustomClickLinkButtonCallback,\n CustomClickLinkButtonEvent,\n CustomCTAClickCallback,\n CustomCTAClickEvent,\n FeedItemDetails,\n FWError,\n FWNavigator,\n IOSFontInfo,\n IOSSystemFontStyle,\n IOSSystemFontWeight,\n IVideoFeedProps,\n LinkButtonConfiguration,\n LiveStream,\n LiveStreamChatEvent,\n LiveStreamChatEventName,\n LiveStreamEvent,\n LiveStreamEventDetails,\n LiveStreamEventName,\n LiveStreamMessageDetails,\n onLiveStreamChatEventCallback,\n onLiveStreamEventCallback,\n Product,\n ProductInfoViewConfiguration,\n ProductPrice,\n ProductUnit,\n ProductUnitOption,\n SDKInitCallback,\n SDKInitEvent,\n StoryBlock,\n StoryBlockSource,\n TrackPurchaseParameters,\n UpdateProductDetailsCallback,\n UpdateProductDetailsEvent,\n VastAttribute,\n VideoFeed,\n VideoFeedClickCallback,\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};\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["StoryBlock","VideoFeed","FireworkSDK","FWNavigator","LiveStream","LiveStreamChatEventName","LiveStreamEventName","VideoPlaybackEventName","VideoShopping"],"mappings":"AACA,OAAOA,UAAP,MAAuB,yBAAvB;AAEA,OAAOC,SAAP,MAAsB,wBAAtB;AAOA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,WAAP,MAAwB,eAAxB;AAKA,OAAOC,UAAP,MAAuB,cAAvB;AAyBA,OAAOC,uBAAP,MAAoC,kCAApC;AAEA,OAAOC,mBAAP,MAAgC,8BAAhC;AAwBA,OAAOC,sBAAP,MAAmC,iCAAnC;AAeA,OAAOC,aAAP,MAA0B,iBAA1B;AAEA,eAAeN,WAAf;AAEA,SAeEA,WAfF,EAiBEC,WAjBF,EAwBEC,UAxBF,EA0BEC,uBA1BF,EA6BEC,mBA7BF,EAyCEN,UAzCF,EA+CEC,SA/CF,EA6DEM,sBA7DF,EAqEEC,aArEF","sourcesContent":["import type { IStoryBlockProps } 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 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 AndroidFontInfo from './models/AndroidFontInfo';\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 UpdateProductDetailsEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\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 Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport type {\n AddToCartButtonConfiguration,\n LinkButtonConfiguration,\n} from './models/ProductInfoViewConfiguration';\nimport type ProductUnit from './models/ProductUnit';\nimport type { ProductPrice, ProductUnitOption } from './models/ProductUnit';\nimport type SDKInitOptions from './models/SDKInitOptions';\nimport type { VideoLaunchBehavior } from './models/SDKInitOptions';\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 VideoPlayerCompleteAction,\n VideoPlayerCTADelay,\n VideoPlayerCTADelayType,\n VideoPlayerCTAStyle,\n VideoPlayerStyle,\n} from './models/VideoPlayerConfiguration';\nimport type {\n AddToCartCallback,\n CustomClickCartIconCallback,\n CustomClickLinkButtonCallback,\n UpdateProductDetailsCallback,\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 AndroidFontInfo,\n CustomClickCartIconCallback,\n CustomClickLinkButtonCallback,\n CustomClickLinkButtonEvent,\n CustomCTAClickCallback,\n CustomCTAClickEvent,\n FeedItemDetails,\n FireworkSDK,\n FWError,\n FWNavigator,\n IOSFontInfo,\n IOSSystemFontStyle,\n IOSSystemFontWeight,\n IStoryBlockProps,\n IVideoFeedProps,\n LinkButtonConfiguration,\n LiveStream,\n LiveStreamChatEvent,\n LiveStreamChatEventName,\n LiveStreamEvent,\n LiveStreamEventDetails,\n LiveStreamEventName,\n LiveStreamMessageDetails,\n onLiveStreamChatEventCallback,\n onLiveStreamEventCallback,\n Product,\n ProductInfoViewConfiguration,\n ProductPrice,\n ProductUnit,\n ProductUnitOption,\n SDKInitCallback,\n SDKInitEvent,\n SDKInitOptions,\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};\n"]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=AndroidFontInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -11,6 +11,7 @@ export let FWEventName;
11
11
  FWEventName["LiveStream"] = "fw:livestream";
12
12
  FWEventName["LiveStreamChat"] = "fw:livestream-chat";
13
13
  FWEventName["ShareBaseURLUpdated"] = "fw:share-base-url-updated";
14
+ FWEventName["VideoLaunchBehaviorUpdated"] = "fw:video-launch-behavior-updated";
14
15
  FWEventName["AdBadgeConfigurationUpdated"] = "fw:ad-badge-configuration-updated";
15
16
  FWEventName["LogMessage"] = "fw:log-message";
16
17
  FWEventName["CustomLinkButtonClick"] = "fw:shopping:custom-link-button-click";
@@ -1 +1 @@
1
- {"version":3,"sources":["FWEventName.ts"],"names":["FWEventName"],"mappings":"AAAA,WAAYA,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["export enum FWEventName {\n SDKInit = 'fw:sdk-init',\n CustomCTAClick = 'fw:custom-cta-click',\n VideoPlayback = 'fw:video-playback',\n VideoFeedClick = 'fw:video-feed-click',\n AddToCart = 'fw:shopping:add-to-cart',\n ClickCartIcon = 'fw:shopping:click-cart-icon',\n UpdateProductDetails = 'fw:shopping:update-product-details',\n LiveStream = 'fw:livestream',\n LiveStreamChat = 'fw:livestream-chat',\n ShareBaseURLUpdated = 'fw:share-base-url-updated',\n AdBadgeConfigurationUpdated = 'fw:ad-badge-configuration-updated',\n LogMessage = 'fw:log-message',\n CustomLinkButtonClick = 'fw:shopping:custom-link-button-click',\n}\n"]}
1
+ {"version":3,"sources":["FWEventName.ts"],"names":["FWEventName"],"mappings":"AAAA,WAAYA,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["export enum FWEventName {\n SDKInit = 'fw:sdk-init',\n CustomCTAClick = 'fw:custom-cta-click',\n VideoPlayback = 'fw:video-playback',\n VideoFeedClick = 'fw:video-feed-click',\n AddToCart = 'fw:shopping:add-to-cart',\n ClickCartIcon = 'fw:shopping:click-cart-icon',\n UpdateProductDetails = 'fw:shopping:update-product-details',\n LiveStream = 'fw:livestream',\n LiveStreamChat = 'fw:livestream-chat',\n ShareBaseURLUpdated = 'fw:share-base-url-updated',\n VideoLaunchBehaviorUpdated = 'fw:video-launch-behavior-updated',\n AdBadgeConfigurationUpdated = 'fw:ad-badge-configuration-updated',\n LogMessage = 'fw:log-message',\n CustomLinkButtonClick = 'fw:shopping:custom-link-button-click',\n}\n"]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=SDKInitOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1,5 +1,4 @@
1
- import { NativeEventEmitter } from 'react-native';
2
- import { NativeModules } from 'react-native';
1
+ import { NativeEventEmitter, NativeModules } from 'react-native';
3
2
  import { LINKING_ERROR } from '../constants/FWErrorMessage';
4
3
  const FireworkSDKModule = NativeModules.FireworkSDK ? NativeModules.FireworkSDK : new Proxy({}, {
5
4
  get() {
@@ -1 +1 @@
1
- {"version":3,"sources":["FireworkSDKModule.ts"],"names":["NativeEventEmitter","NativeModules","LINKING_ERROR","FireworkSDKModule","FireworkSDK","Proxy","get","Error","FireworkSDKModuleEventEmitter"],"mappings":"AAAA,SAASA,kBAAT,QAAiD,cAAjD;AACA,SAASC,aAAT,QAA8B,cAA9B;AAGA,SAASC,aAAT,QAA8B,6BAA9B;AAIA,MAAMC,iBAAiB,GAAGF,aAAa,CAACG,WAAd,GACtBH,aAAa,CAACG,WADQ,GAEtB,IAAIC,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUL,aAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;AAuBA,MAAMM,6BAA6B,GAAG,IAAIR,kBAAJ,CAAuBG,iBAAvB,CAAtC;AACA,SAASK,6BAAT;AACA,eAAeL,iBAAf","sourcesContent":["import { NativeEventEmitter, NativeModule } from 'react-native';\nimport { NativeModules } from 'react-native';\nimport type AdBadgeConfiguration from '../models/AdBadgeConfiguration';\n\nimport { LINKING_ERROR } from '../constants/FWErrorMessage';\nimport type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';\nimport type TrackPurchaseParameters from '../models/TrackPurchaseParameters';\n\nconst FireworkSDKModule = NativeModules.FireworkSDK\n ? NativeModules.FireworkSDK\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\ninterface IFireworkSDKModule extends NativeModule {\n init(userId?: string): void;\n openVideoPlayer(url: string, config?: VideoPlayerConfiguration): void;\n setCustomCTAClickEnabled(enabled: boolean): void;\n setShareBaseURL(url?: string): Promise<any>;\n setVideoPlaybackEventEnabled(enabled: boolean): void;\n setAdBadgeConfiguration(config?: AdBadgeConfiguration): Promise<any>;\n trackPurchase(parameters: TrackPurchaseParameters): void;\n changeAppLanguage(language: string): Promise<boolean>;\n restart(): Promise<void>;\n}\n\nconst FireworkSDKModuleEventEmitter = new NativeEventEmitter(FireworkSDKModule);\nexport { FireworkSDKModuleEventEmitter };\nexport default FireworkSDKModule as IFireworkSDKModule;\n"]}
1
+ {"version":3,"sources":["FireworkSDKModule.ts"],"names":["NativeEventEmitter","NativeModules","LINKING_ERROR","FireworkSDKModule","FireworkSDK","Proxy","get","Error","FireworkSDKModuleEventEmitter"],"mappings":"AAAA,SAASA,kBAAT,EAA2CC,aAA3C,QAAgE,cAAhE;AAEA,SAASC,aAAT,QAA8B,6BAA9B;AAMA,MAAMC,iBAAiB,GAAGF,aAAa,CAACG,WAAd,GACtBH,aAAa,CAACG,WADQ,GAEtB,IAAIC,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUL,aAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;AAuBA,MAAMM,6BAA6B,GAAG,IAAIR,kBAAJ,CAAuBG,iBAAvB,CAAtC;AACA,SAASK,6BAAT;AACA,eAAeL,iBAAf","sourcesContent":["import { NativeEventEmitter, NativeModule, NativeModules } from 'react-native';\n\nimport { LINKING_ERROR } from '../constants/FWErrorMessage';\nimport type AdBadgeConfiguration from '../models/AdBadgeConfiguration';\nimport type SDKInitOptions from '../models/SDKInitOptions';\nimport type TrackPurchaseParameters from '../models/TrackPurchaseParameters';\nimport type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';\n\nconst FireworkSDKModule = NativeModules.FireworkSDK\n ? NativeModules.FireworkSDK\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\ninterface IFireworkSDKModule extends NativeModule {\n init(options?: SDKInitOptions): Promise<any>;\n openVideoPlayer(url: string, config?: VideoPlayerConfiguration): void;\n setCustomCTAClickEnabled(enabled: boolean): void;\n setShareBaseURL(url?: string): Promise<any>;\n setVideoPlaybackEventEnabled(enabled: boolean): void;\n setAdBadgeConfiguration(config?: AdBadgeConfiguration): Promise<any>;\n trackPurchase(parameters: TrackPurchaseParameters): void;\n changeAppLanguage(language: string): Promise<boolean>;\n restart(): Promise<any>;\n}\n\nconst FireworkSDKModuleEventEmitter = new NativeEventEmitter(FireworkSDKModule);\nexport { FireworkSDKModuleEventEmitter };\nexport default FireworkSDKModule as IFireworkSDKModule;\n"]}
@@ -2,15 +2,17 @@ import FWNavigator from './FWNavigator';
2
2
  import LiveStream from './LiveStream';
3
3
  import type AdBadgeConfiguration from './models/AdBadgeConfiguration';
4
4
  import type { CustomCTAClickEvent, SDKInitEvent, VideoFeedClickEvent, VideoPlaybackEvent } from './models/FWEvents';
5
+ import type SDKInitOptions from './models/SDKInitOptions';
6
+ import type { VideoLaunchBehavior } from './models/SDKInitOptions';
5
7
  import type TrackPurchaseParameters from './models/TrackPurchaseParameters';
6
8
  import type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';
7
9
  import VideoShopping from './VideoShopping';
8
- export declare type SDKInitCallback = (event: SDKInitEvent) => void;
9
- export declare type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;
10
- export declare type VideoPlaybackCallback = (event: VideoPlaybackEvent) => void;
11
- export declare type VideoFeedClickCallback = (event: VideoFeedClickEvent) => void;
10
+ export type SDKInitCallback = (event: SDKInitEvent) => void;
11
+ export type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;
12
+ export type VideoPlaybackCallback = (event: VideoPlaybackEvent) => void;
13
+ export type VideoFeedClickCallback = (event: VideoFeedClickEvent) => void;
12
14
  /**
13
- * Entry class of Firework SDK, which supports the sdk initialization and global configuration.
15
+ * Firework SDK.
14
16
  */
15
17
  declare class FireworkSDK {
16
18
  private static _instance?;
@@ -35,16 +37,18 @@ declare class FireworkSDK {
35
37
  set onVideoPlayback(value: VideoPlaybackCallback | undefined);
36
38
  private _onVideoPlayback?;
37
39
  /**
38
- * The share base URL of videos. Only supported on iOS.
40
+ * Get share base URL.
39
41
  */
40
- get shareBaseURL(): string | undefined;
41
- set shareBaseURL(value: string | undefined);
42
+ getShareBaseURL(): string | undefined;
42
43
  private _shareBaseURL;
43
44
  /**
44
- * The configuration for ad badges. Only supported on iOS.
45
+ * Get the configuration for ad badges. Only supported on iOS.
45
46
  */
46
- get adBadgeConfiguration(): AdBadgeConfiguration | undefined;
47
- set adBadgeConfiguration(value: AdBadgeConfiguration | undefined);
47
+ getAdBadgeConfiguration(): AdBadgeConfiguration | undefined;
48
+ /**
49
+ * Set the configuration for ad badges. Only supported on iOS.
50
+ */
51
+ setAdBadgeConfiguration(value: AdBadgeConfiguration | undefined): Promise<void>;
48
52
  private _adBadgeConfiguration;
49
53
  /**
50
54
  * Defaults to false.
@@ -52,6 +56,11 @@ declare class FireworkSDK {
52
56
  */
53
57
  get debugLogsEnabled(): boolean;
54
58
  set debugLogsEnabled(value: boolean);
59
+ /**
60
+ * Get video launch behavior.
61
+ */
62
+ getVideoLaunchBehavior(): VideoLaunchBehavior | undefined;
63
+ private _videoLaunchBehavior;
55
64
  private get eventEmitter();
56
65
  /**
57
66
  * Get VideoShopping object.
@@ -76,9 +85,9 @@ declare class FireworkSDK {
76
85
  private constructor();
77
86
  /**
78
87
  * Initializes Firework SDK.
79
- * @param {string?} userId An id to uniquely identify device or user.
88
+ * @param {SDKInitOptions?} options
80
89
  */
81
- init(userId?: string): void;
90
+ init(options?: SDKInitOptions): Promise<void>;
82
91
  /**
83
92
  * Open Video URL.
84
93
  * @param {string} url
@@ -93,7 +102,7 @@ declare class FireworkSDK {
93
102
  /**
94
103
  * Change App level language. Only supported on Android.
95
104
  * @param {string} language Such as en, ar and en-US
96
- * @returns
105
+ * @returns {Promise<boolean>}
97
106
  */
98
107
  changeAppLanguage(language: string): Promise<boolean>;
99
108
  }
@@ -1,6 +1,6 @@
1
1
  import type { LiveStreamChatEvent, LiveStreamEvent } from './models/FWEvents';
2
- export declare type onLiveStreamEventCallback = (event: LiveStreamEvent) => void;
3
- export declare type onLiveStreamChatEventCallback = (event: LiveStreamChatEvent) => void;
2
+ export type onLiveStreamEventCallback = (event: LiveStreamEvent) => void;
3
+ export type onLiveStreamChatEventCallback = (event: LiveStreamChatEvent) => void;
4
4
  /**
5
5
  * The entry class of live stream.
6
6
  */
@@ -2,10 +2,10 @@ import type AddToCartResult from './models/AddToCartResult';
2
2
  import type { AddToCartEvent, CustomClickLinkButtonEvent, UpdateProductDetailsEvent } from './models/FWEvents';
3
3
  import type Product from './models/Product';
4
4
  import type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';
5
- export declare type AddToCartCallback = (event: AddToCartEvent) => Promise<AddToCartResult | undefined | null>;
6
- export declare type CustomClickCartIconCallback = () => Promise<void>;
7
- export declare type UpdateProductDetailsCallback = (event: UpdateProductDetailsEvent) => Promise<Product[] | undefined | null>;
8
- export declare type CustomClickLinkButtonCallback = (event: CustomClickLinkButtonEvent) => Promise<void>;
5
+ export type AddToCartCallback = (event: AddToCartEvent) => Promise<AddToCartResult | undefined | null>;
6
+ export type CustomClickCartIconCallback = () => Promise<void>;
7
+ export type UpdateProductDetailsCallback = (event: UpdateProductDetailsEvent) => Promise<Product[] | undefined | null>;
8
+ export type CustomClickLinkButtonCallback = (event: CustomClickLinkButtonEvent) => Promise<void>;
9
9
  /**
10
10
  * The entry class of video shopping.
11
11
  */
@@ -2,6 +2,9 @@ import React from 'react';
2
2
  import type { EmitterSubscription, StyleProp, ViewStyle } from 'react-native';
3
3
  import type FWError from '../models/FWError';
4
4
  import type { StoryBlockSource } from '../models/StoryBlockSource';
5
+ /**
6
+ * The props type of StoryBlock component.
7
+ */
5
8
  export interface IStoryBlockProps {
6
9
  /**
7
10
  * Standard React Native View Style.
@@ -35,9 +38,9 @@ export interface IStoryBlockProps {
35
38
  onStoryBlockLoadFinished?: (error?: FWError) => void;
36
39
  }
37
40
  /**
38
- * Only supported on iOS.
41
+ * StoryBlock component. Only supported on iOS.
39
42
  */
40
- export default class StoryBlock extends React.Component<IStoryBlockProps> {
43
+ declare class StoryBlock extends React.Component<IStoryBlockProps> {
41
44
  nativeComponentRef: React.RefObject<any>;
42
45
  subscriptions: EmitterSubscription[];
43
46
  componentDidMount(): void;
@@ -47,3 +50,4 @@ export default class StoryBlock extends React.Component<IStoryBlockProps> {
47
50
  private _generateKey;
48
51
  private _generateDynamicContentParametersString;
49
52
  }
53
+ export default StoryBlock;
@@ -5,7 +5,10 @@ import type AdConfiguration from '../models/AdConfiguration';
5
5
  import type VideoFeedConfiguration from '../models/VideoFeedConfiguration';
6
6
  import type { VideoFeedSource } from '../models/VideoFeedSource';
7
7
  import type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';
8
- export declare type VideoFeedMode = 'row' | 'column' | 'grid';
8
+ export type VideoFeedMode = 'row' | 'column' | 'grid';
9
+ /**
10
+ * The props of VideoFeed component.
11
+ */
9
12
  export interface IVideoFeedProps {
10
13
  /**
11
14
  * Standard React Native View Style.
@@ -58,7 +61,10 @@ export interface IVideoFeedProps {
58
61
  */
59
62
  onVideoFeedLoadFinished?: (error?: FWError) => void;
60
63
  }
61
- export default class VideoFeed extends React.Component<IVideoFeedProps> {
64
+ /**
65
+ * VideoFeed component.
66
+ */
67
+ declare class VideoFeed extends React.Component<IVideoFeedProps> {
62
68
  static defaultProps: {
63
69
  mode: string;
64
70
  };
@@ -76,3 +82,4 @@ export default class VideoFeed extends React.Component<IVideoFeedProps> {
76
82
  private _generateVastAttributesString;
77
83
  private _getVideoFeedConfiguration;
78
84
  }
85
+ export default VideoFeed;
@@ -1,3 +1,4 @@
1
+ import type { IStoryBlockProps } from './components/StoryBlock';
1
2
  import StoryBlock from './components/StoryBlock';
2
3
  import type { IVideoFeedProps, VideoFeedMode } from './components/VideoFeed';
3
4
  import VideoFeed from './components/VideoFeed';
@@ -11,9 +12,10 @@ import type { AdBadgeTextType } from './models/AdBadgeConfiguration';
11
12
  import type AdConfiguration from './models/AdConfiguration';
12
13
  import type { VastAttribute } from './models/AdConfiguration';
13
14
  import type AddToCartResult from './models/AddToCartResult';
15
+ import type AndroidFontInfo from './models/AndroidFontInfo';
14
16
  import type FeedItemDetails from './models/FeedItemDetails';
15
17
  import type FWError from './models/FWError';
16
- import type { AddToCartEvent, CustomClickLinkButtonEvent, CustomCTAClickEvent, LiveStreamChatEvent, LiveStreamEvent, SDKInitEvent, UpdateProductDetailsEvent, VideoPlaybackEvent } from './models/FWEvents';
18
+ import type { AddToCartEvent, CustomClickLinkButtonEvent, CustomCTAClickEvent, LiveStreamChatEvent, LiveStreamEvent, SDKInitEvent, UpdateProductDetailsEvent, VideoFeedClickEvent, VideoPlaybackEvent } from './models/FWEvents';
17
19
  import type IOSFontInfo from './models/IOSFontInfo';
18
20
  import type { IOSSystemFontStyle, IOSSystemFontWeight } from './models/IOSFontInfo';
19
21
  import LiveStreamChatEventName from './models/LiveStreamChatEventName';
@@ -25,6 +27,8 @@ import type ProductInfoViewConfiguration from './models/ProductInfoViewConfigura
25
27
  import type { AddToCartButtonConfiguration, LinkButtonConfiguration } from './models/ProductInfoViewConfiguration';
26
28
  import type ProductUnit from './models/ProductUnit';
27
29
  import type { ProductPrice, ProductUnitOption } from './models/ProductUnit';
30
+ import type SDKInitOptions from './models/SDKInitOptions';
31
+ import type { VideoLaunchBehavior } from './models/SDKInitOptions';
28
32
  import type { StoryBlockSource } from './models/StoryBlockSource';
29
33
  import type TrackPurchaseParameters from './models/TrackPurchaseParameters';
30
34
  import type VideoFeedConfiguration from './models/VideoFeedConfiguration';
@@ -34,8 +38,8 @@ import type VideoPlaybackDetails from './models/VideoPlaybackDetails';
34
38
  import type { VideoPlayerSize } from './models/VideoPlaybackDetails';
35
39
  import VideoPlaybackEventName from './models/VideoPlaybackEventName';
36
40
  import type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';
37
- import type { VideoLaunchBehavior, VideoPlayerCompleteAction, VideoPlayerCTADelay, VideoPlayerCTADelayType, VideoPlayerCTAStyle, VideoPlayerStyle } from './models/VideoPlayerConfiguration';
41
+ import type { VideoPlayerCompleteAction, VideoPlayerCTADelay, VideoPlayerCTADelayType, VideoPlayerCTAStyle, VideoPlayerStyle } from './models/VideoPlayerConfiguration';
38
42
  import type { AddToCartCallback, CustomClickCartIconCallback, CustomClickLinkButtonCallback, UpdateProductDetailsCallback } from './VideoShopping';
39
43
  import VideoShopping from './VideoShopping';
40
44
  export default FireworkSDK;
41
- export { AdBadgeConfiguration, AdBadgeTextType, AdConfiguration, AddToCartButtonConfiguration, AddToCartCallback, AddToCartEvent, AddToCartResult, CustomClickCartIconCallback, CustomClickLinkButtonCallback, CustomClickLinkButtonEvent, CustomCTAClickCallback, CustomCTAClickEvent, FeedItemDetails, FWError, FWNavigator, IOSFontInfo, IOSSystemFontStyle, IOSSystemFontWeight, IVideoFeedProps, LinkButtonConfiguration, LiveStream, LiveStreamChatEvent, LiveStreamChatEventName, LiveStreamEvent, LiveStreamEventDetails, LiveStreamEventName, LiveStreamMessageDetails, onLiveStreamChatEventCallback, onLiveStreamEventCallback, Product, ProductInfoViewConfiguration, ProductPrice, ProductUnit, ProductUnitOption, SDKInitCallback, SDKInitEvent, StoryBlock, StoryBlockSource, TrackPurchaseParameters, UpdateProductDetailsCallback, UpdateProductDetailsEvent, VastAttribute, VideoFeed, VideoFeedClickCallback, VideoFeedConfiguration, VideoFeedContentPadding, VideoFeedMode, VideoFeedPlayIconConfiguration, VideoFeedSource, VideoFeedTitleConfiguration, VideoFeedTitlePosition, VideoLaunchBehavior, VideoPlaybackCallback, VideoPlaybackDetails, VideoPlaybackEvent, VideoPlaybackEventName, VideoPlayerCompleteAction, VideoPlayerConfiguration, VideoPlayerCTADelay, VideoPlayerCTADelayType, VideoPlayerCTAStyle, VideoPlayerSize, VideoPlayerStyle, VideoShopping, };
45
+ export { AdBadgeConfiguration, AdBadgeTextType, AdConfiguration, AddToCartButtonConfiguration, AddToCartCallback, AddToCartEvent, AddToCartResult, AndroidFontInfo, CustomClickCartIconCallback, CustomClickLinkButtonCallback, CustomClickLinkButtonEvent, CustomCTAClickCallback, CustomCTAClickEvent, FeedItemDetails, FireworkSDK, FWError, FWNavigator, IOSFontInfo, IOSSystemFontStyle, IOSSystemFontWeight, IStoryBlockProps, IVideoFeedProps, LinkButtonConfiguration, LiveStream, LiveStreamChatEvent, LiveStreamChatEventName, LiveStreamEvent, LiveStreamEventDetails, LiveStreamEventName, LiveStreamMessageDetails, onLiveStreamChatEventCallback, onLiveStreamEventCallback, Product, ProductInfoViewConfiguration, ProductPrice, ProductUnit, ProductUnitOption, SDKInitCallback, SDKInitEvent, SDKInitOptions, StoryBlock, StoryBlockSource, TrackPurchaseParameters, UpdateProductDetailsCallback, UpdateProductDetailsEvent, VastAttribute, VideoFeed, VideoFeedClickCallback, VideoFeedClickEvent, VideoFeedConfiguration, VideoFeedContentPadding, VideoFeedMode, VideoFeedPlayIconConfiguration, VideoFeedSource, VideoFeedTitleConfiguration, VideoFeedTitlePosition, VideoLaunchBehavior, VideoPlaybackCallback, VideoPlaybackDetails, VideoPlaybackEvent, VideoPlaybackEventName, VideoPlayerCompleteAction, VideoPlayerConfiguration, VideoPlayerCTADelay, VideoPlayerCTADelayType, VideoPlayerCTAStyle, VideoPlayerSize, VideoPlayerStyle, VideoShopping, };
@@ -1,4 +1,4 @@
1
- export declare type AdBadgeTextType = 'ad' | 'sponsored';
1
+ export type AdBadgeTextType = 'ad' | 'sponsored';
2
2
  export default interface AdBadgeConfiguration {
3
3
  /**
4
4
  * The text type of the ad badge.
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Only supported on Android.
3
+ */
4
+ export default interface AndroidFontInfo {
5
+ /**
6
+ * Whether to use a custom font. Default is false.
7
+ */
8
+ isCustom?: boolean;
9
+ /**
10
+ * The Android system typeface name, such as "DEFAULT", "DEFAULT_BOLD", "SANS_SERIF", "SERIF", "MONOSPACE".
11
+ * Or custom font name, such as: "fonts/kaushanscript_regular.ttf". (You need to set the isCustom=true and put the font file in the "assets" directory: app/src/main/assets/fonts/kaushanscript_regular.ttf)
12
+ */
13
+ typefaceName?: string;
14
+ }
@@ -9,6 +9,7 @@ export declare enum FWEventName {
9
9
  LiveStream = "fw:livestream",
10
10
  LiveStreamChat = "fw:livestream-chat",
11
11
  ShareBaseURLUpdated = "fw:share-base-url-updated",
12
+ VideoLaunchBehaviorUpdated = "fw:video-launch-behavior-updated",
12
13
  AdBadgeConfigurationUpdated = "fw:ad-badge-configuration-updated",
13
14
  LogMessage = "fw:log-message",
14
15
  CustomLinkButtonClick = "fw:shopping:custom-link-button-click"
@@ -1,5 +1,5 @@
1
- export declare type IOSSystemFontStyle = 'normal' | 'italic';
2
- export declare type IOSSystemFontWeight = 'ultraLight' | 'thin' | 'light' | 'regular' | 'medium' | 'semibold' | 'bold' | 'heavy' | 'black';
1
+ export type IOSSystemFontStyle = 'normal' | 'italic';
2
+ export type IOSSystemFontWeight = 'ultraLight' | 'thin' | 'light' | 'regular' | 'medium' | 'semibold' | 'bold' | 'heavy' | 'black';
3
3
  export default interface IOSFontInfo {
4
4
  /**
5
5
  * The iOS font name, such as "Helvetica", "Helvetica-Bold".
@@ -0,0 +1,6 @@
1
+ export type VideoLaunchBehavior = 'default' | 'muteOnFirstLaunch';
2
+ export default interface SDKInitOptions {
3
+ userId?: string;
4
+ shareBaseURL?: string;
5
+ videoLaunchBehavior?: VideoLaunchBehavior;
6
+ }
@@ -1 +1 @@
1
- export declare type StoryBlockSource = 'discover' | 'channel' | 'playlist' | 'dynamicContent';
1
+ export type StoryBlockSource = 'discover' | 'channel' | 'playlist' | 'dynamicContent';
@@ -1,4 +1,5 @@
1
1
  import type IOSFontInfo from './IOSFontInfo';
2
+ import type AndroidFontInfo from './AndroidFontInfo';
2
3
  export interface VideoFeedTitleConfiguration {
3
4
  /**
4
5
  * Specifies if the video feed title is hidden.
@@ -13,17 +14,23 @@ export interface VideoFeedTitleConfiguration {
13
14
  */
14
15
  fontSize?: number;
15
16
  /**
16
- * The iOS font info of "Add to cart" button.
17
+ * The iOS font info of video feed title.
17
18
  * The property is ignored when fontSize is not set.
18
19
  * Only supported on iOS.
19
20
  */
20
21
  iOSFontInfo?: IOSFontInfo;
22
+ /**
23
+ * The Android font info of "VideoFeedTitle".
24
+ * The property is ignored when fontSize is not set.
25
+ * Only supported on Android.
26
+ */
27
+ androidFontInfo?: AndroidFontInfo;
21
28
  }
22
29
  export interface VideoFeedPlayIconConfiguration {
23
30
  hidden?: boolean;
24
31
  iconWidth?: number;
25
32
  }
26
- export declare type VideoFeedTitlePosition = 'stacked' | 'nested';
33
+ export type VideoFeedTitlePosition = 'stacked' | 'nested';
27
34
  export interface VideoFeedContentPadding {
28
35
  top?: number;
29
36
  right?: number;
@@ -55,10 +62,6 @@ export default interface VideoFeedConfiguration {
55
62
  * Indicates if the video feed item shows ad badge.
56
63
  */
57
64
  showAdBadge?: boolean;
58
- /**
59
- * Custom layout name for video feed item. Only supported on Android. Deprecate
60
- */
61
- customLayoutName?: string;
62
65
  /**
63
66
  * The aspect ratio(width / height) for video feed item. Only supported on iOS.
64
67
  */
@@ -81,10 +84,4 @@ export default interface VideoFeedConfiguration {
81
84
  * The property value needs to be an integer and greater than 0.
82
85
  */
83
86
  gridColumns?: number;
84
- /**
85
- * Please use the enablePictureInPicture in IVideoFeedProps. Deprecate
86
- *
87
- * @deprecated The property will be deprecated since RN SDK V2.
88
- */
89
- enablePictureInPicture?: boolean;
90
87
  }
@@ -1 +1 @@
1
- export declare type VideoFeedSource = 'discover' | 'channel' | 'playlist' | 'playlistGroup' | 'dynamicContent';
1
+ export type VideoFeedSource = 'discover' | 'channel' | 'playlist' | 'playlistGroup' | 'dynamicContent';
@@ -1,6 +1,6 @@
1
1
  import type IOSFontInfo from './IOSFontInfo';
2
- export declare type VideoPlayerStyle = 'full' | 'fit';
3
- export declare type VideoPlayerCompleteAction = 'loop' | 'advanceToNext';
2
+ export type VideoPlayerStyle = 'full' | 'fit';
3
+ export type VideoPlayerCompleteAction = 'loop' | 'advanceToNext';
4
4
  export interface VideoPlayerCTAStyle {
5
5
  /**
6
6
  * The background color of CTA button.
@@ -15,13 +15,13 @@ export interface VideoPlayerCTAStyle {
15
15
  */
16
16
  fontSize?: number;
17
17
  /**
18
- * The iOS font info of "Add to cart" button.
18
+ * The iOS font info of CTA button.
19
19
  * The property is ignored when fontSize is not set.
20
20
  * Only supported on iOS.
21
21
  */
22
22
  iOSFontInfo?: IOSFontInfo;
23
23
  }
24
- export declare type VideoPlayerCTADelayType = 'constant' | 'percentage';
24
+ export type VideoPlayerCTADelayType = 'constant' | 'percentage';
25
25
  export interface VideoPlayerCTADelay {
26
26
  type: VideoPlayerCTADelayType;
27
27
  /**
@@ -32,7 +32,6 @@ export interface VideoPlayerCTADelay {
32
32
  */
33
33
  value: number;
34
34
  }
35
- export declare type VideoLaunchBehavior = 'default' | 'muteOnFirstLaunch';
36
35
  export default interface VideoPlayerConfiguration {
37
36
  /**
38
37
  * Sets the proportion of the video player to its container.
@@ -58,10 +57,6 @@ export default interface VideoPlayerConfiguration {
58
57
  * Indicates if the video player shows mute button.
59
58
  */
60
59
  showMuteButton?: boolean;
61
- /**
62
- * Specifies the video player launch behavior. Only supported on iOS.
63
- */
64
- launchBehavior?: VideoLaunchBehavior;
65
60
  /**
66
61
  * Indicates if Firework branding should be showed or not.
67
62
  */
@@ -1,9 +1,10 @@
1
1
  import { NativeEventEmitter, NativeModule } from 'react-native';
2
2
  import type AdBadgeConfiguration from '../models/AdBadgeConfiguration';
3
- import type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';
3
+ import type SDKInitOptions from '../models/SDKInitOptions';
4
4
  import type TrackPurchaseParameters from '../models/TrackPurchaseParameters';
5
+ import type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';
5
6
  interface IFireworkSDKModule extends NativeModule {
6
- init(userId?: string): void;
7
+ init(options?: SDKInitOptions): Promise<any>;
7
8
  openVideoPlayer(url: string, config?: VideoPlayerConfiguration): void;
8
9
  setCustomCTAClickEnabled(enabled: boolean): void;
9
10
  setShareBaseURL(url?: string): Promise<any>;
@@ -11,7 +12,7 @@ interface IFireworkSDKModule extends NativeModule {
11
12
  setAdBadgeConfiguration(config?: AdBadgeConfiguration): Promise<any>;
12
13
  trackPurchase(parameters: TrackPurchaseParameters): void;
13
14
  changeAppLanguage(language: string): Promise<boolean>;
14
- restart(): Promise<void>;
15
+ restart(): Promise<any>;
15
16
  }
16
17
  declare const FireworkSDKModuleEventEmitter: NativeEventEmitter;
17
18
  export { FireworkSDKModuleEventEmitter };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-firework-sdk",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.5",
4
4
  "description": "Firework React Native SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -18,13 +18,15 @@
18
18
  "!ios/build",
19
19
  "!**/__tests__",
20
20
  "!**/__fixtures__",
21
- "!**/__mocks__"
21
+ "!**/__mocks__",
22
+ "!docs/"
22
23
  ],
23
24
  "scripts": {
24
25
  "test": "jest",
25
26
  "typescript": "tsc --noEmit",
26
27
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
27
- "prepare": "bob build"
28
+ "prepare": "bob build",
29
+ "generate-doc": "rm -rf docs && npx typedoc"
28
30
  },
29
31
  "keywords": [
30
32
  "react-native",
@@ -57,7 +59,8 @@
57
59
  "react": "17.0.2",
58
60
  "react-native": "0.66.4",
59
61
  "react-native-builder-bob": "^0.18.0",
60
- "typescript": "^4.4.4"
62
+ "typedoc": "^0.23.27",
63
+ "typescript": "^4.6.2"
61
64
  },
62
65
  "peerDependencies": {
63
66
  "react": "*",