@streamscloud/embeddable 12.1.0 → 13.0.0

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 (219) hide show
  1. package/dist/ads/ad-card/cmp.ad-card.svelte +4 -16
  2. package/dist/content-player/cmp.content-player.svelte +1 -1
  3. package/dist/content-player/content-player-config.svelte.d.ts +2 -12
  4. package/dist/content-player/content-player-config.svelte.js +1 -1
  5. package/dist/content-player/content-player-settings.svelte.d.ts +16 -0
  6. package/dist/content-player/content-player-settings.svelte.js +27 -0
  7. package/dist/content-player/controls-and-attachments.svelte +32 -2
  8. package/dist/content-player/controls-and-attachments.svelte.d.ts +1 -0
  9. package/dist/content-player/index.d.ts +1 -0
  10. package/dist/content-player/index.js +1 -0
  11. package/dist/content-player/overview-panel.svelte +2 -2
  12. package/dist/content-player/ui-manager.svelte.d.ts +2 -1
  13. package/dist/content-player/ui-manager.svelte.js +2 -1
  14. package/dist/core/enums.d.ts +3 -0
  15. package/dist/core/enums.js +4 -0
  16. package/dist/core/theme/index.d.ts +2 -0
  17. package/dist/core/theme/index.js +1 -0
  18. package/dist/core/theme/theme-store.svelte.d.ts +6 -0
  19. package/dist/core/theme/theme-store.svelte.js +10 -0
  20. package/dist/external-api/data-providers/index.d.ts +6 -0
  21. package/dist/external-api/data-providers/index.js +6 -0
  22. package/dist/external-api/data-providers/internal-media-center-data-provider.svelte.d.ts +15 -0
  23. package/dist/{media-center/config/internal-media-center-config.js → external-api/data-providers/internal-media-center-data-provider.svelte.js} +33 -17
  24. package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.d.ts +1 -1
  25. package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.js +1 -1
  26. package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.d.ts +1 -1
  27. package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.d.ts +1 -1
  28. package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.js +1 -1
  29. package/dist/{media-center/config → external-api/data-providers}/operations.generated.d.ts +6 -0
  30. package/dist/{media-center/config → external-api/data-providers}/operations.generated.js +13 -0
  31. package/dist/{media-center/config → external-api/data-providers}/operations.graphql +6 -0
  32. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.d.ts +1 -1
  33. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.js +2 -2
  34. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.d.ts +1 -1
  35. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.d.ts +2 -2
  36. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.js +1 -1
  37. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.d.ts +1 -1
  38. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.js +1 -1
  39. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.d.ts +1 -1
  40. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.d.ts +1 -1
  41. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.js +2 -2
  42. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.d.ts +2 -2
  43. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.js +6 -2
  44. package/dist/external-api/index.d.ts +3 -0
  45. package/dist/external-api/index.js +3 -0
  46. package/dist/external-api/media-page/index.d.ts +83 -0
  47. package/dist/external-api/media-page/index.js +82 -0
  48. package/dist/{short-videos → external-api}/short-videos-player/index.d.ts +27 -12
  49. package/dist/{short-videos → external-api}/short-videos-player/index.js +35 -28
  50. package/dist/external-api/streams-player/index.d.ts +105 -0
  51. package/dist/external-api/streams-player/index.js +110 -0
  52. package/dist/media-center/config/types.d.ts +28 -27
  53. package/dist/media-center/index.d.ts +3 -1
  54. package/dist/media-center/media-center/cmp.media-center-proxy.svelte +59 -0
  55. package/dist/media-center/media-center/cmp.media-center-proxy.svelte.d.ts +15 -0
  56. package/dist/media-center/media-center/discover/community-features-localization.d.ts +8 -0
  57. package/dist/media-center/media-center/discover/community-features-localization.js +31 -0
  58. package/dist/media-center/media-center/discover/community-features.svelte +171 -0
  59. package/dist/media-center/media-center/discover/community-features.svelte.d.ts +11 -0
  60. package/dist/media-center/media-center/discover/data-loading.d.ts +3 -3
  61. package/dist/media-center/media-center/discover/data-loading.js +5 -5
  62. package/dist/media-center/media-center/discover/discover-header.svelte +13 -65
  63. package/dist/media-center/media-center/discover/discover-header.svelte.d.ts +0 -2
  64. package/dist/media-center/media-center/discover/discover-view-handler.svelte.d.ts +3 -3
  65. package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +4 -4
  66. package/dist/media-center/media-center/discover/discover-view.svelte +6 -6
  67. package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +0 -2
  68. package/dist/media-center/media-center/feed/feed-handler.svelte.d.ts +5 -3
  69. package/dist/media-center/media-center/feed/feed-handler.svelte.js +18 -10
  70. package/dist/media-center/media-center/feed/feed-providers-generator.d.ts +11 -5
  71. package/dist/media-center/media-center/feed/feed-providers-generator.js +13 -9
  72. package/dist/media-center/media-center/footer/index.d.ts +1 -0
  73. package/dist/media-center/media-center/footer/index.js +1 -0
  74. package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte +5 -5
  75. package/dist/media-center/media-center/handlers/categories-handler.svelte.d.ts +3 -5
  76. package/dist/media-center/media-center/handlers/categories-handler.svelte.js +16 -13
  77. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +18 -5
  78. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +21 -9
  79. package/dist/media-center/media-center/{header-footer → header}/index.d.ts +0 -1
  80. package/dist/media-center/media-center/{header-footer → header}/index.js +0 -1
  81. package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte +5 -4
  82. package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte +138 -35
  83. package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte.d.ts +2 -2
  84. package/dist/media-center/media-center/index.d.ts +2 -1
  85. package/dist/media-center/media-center/index.js +2 -1
  86. package/dist/media-center/media-center/media-center-context.svelte.d.ts +16 -20
  87. package/dist/media-center/media-center/media-center-context.svelte.js +61 -19
  88. package/dist/media-center/media-center/media-center-settings.svelte.d.ts +11 -0
  89. package/dist/media-center/media-center/media-center-settings.svelte.js +23 -0
  90. package/dist/media-center/media-center/{cmp.media-center.svelte → media-center-view.svelte} +65 -108
  91. package/dist/media-center/media-center/media-center-view.svelte.d.ts +9 -0
  92. package/dist/media-center/media-center/menu/category-following-wrapper.svelte.d.ts +1 -1
  93. package/dist/media-center/media-center/menu/menu.svelte +40 -35
  94. package/dist/media-center/media-center/menu/menu.svelte.d.ts +0 -2
  95. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.d.ts +3 -3
  96. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.js +4 -4
  97. package/dist/media-center/media-center/moments/cmp.moments-circle.svelte +24 -7
  98. package/dist/media-center/media-center/moments/index.d.ts +1 -0
  99. package/dist/media-center/media-center/moments/index.js +1 -0
  100. package/dist/media-center/media-center/moments/moments-feed-handler.svelte.d.ts +26 -0
  101. package/dist/media-center/media-center/moments/moments-feed-handler.svelte.js +49 -0
  102. package/dist/media-center/media-center/moments/moments-state.svelte.d.ts +20 -0
  103. package/dist/media-center/media-center/moments/moments-state.svelte.js +82 -0
  104. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.d.ts +3 -3
  105. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.js +4 -4
  106. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -3
  107. package/dist/media-center/media-center/types.d.ts +4 -11
  108. package/dist/media-center/membership/index.d.ts +1 -0
  109. package/dist/media-center/membership/index.js +1 -0
  110. package/dist/media-center/membership/mock-membership-handler.svelte.d.ts +10 -0
  111. package/dist/media-center/membership/mock-membership-handler.svelte.js +21 -0
  112. package/dist/media-center/membership/types.d.ts +10 -0
  113. package/dist/media-center/membership/types.js +1 -0
  114. package/dist/media-center/navigation/index.d.ts +2 -0
  115. package/dist/media-center/navigation/index.js +1 -0
  116. package/dist/media-center/navigation/media-center-state.d.ts +19 -0
  117. package/dist/media-center/navigation/media-center-state.js +1 -0
  118. package/dist/media-center/navigation/mock-navigation-handler.svelte.d.ts +6 -0
  119. package/dist/media-center/navigation/mock-navigation-handler.svelte.js +6 -0
  120. package/dist/media-center/navigation/types.d.ts +5 -0
  121. package/dist/media-center/navigation/types.js +1 -0
  122. package/dist/media-page/cmp.media-page.svelte +45 -0
  123. package/dist/media-page/cmp.media-page.svelte.d.ts +11 -0
  124. package/dist/media-page/index.d.ts +42 -58
  125. package/dist/media-page/index.js +131 -17
  126. package/dist/posts/attachments/cmp.attachments.svelte +1 -1
  127. package/dist/posts/controls/cmp.controls.svelte +4 -1
  128. package/dist/posts/controls/cmp.controls.svelte.d.ts +2 -0
  129. package/dist/posts/post-viewer/attachments-horizontal.svelte +4 -12
  130. package/dist/posts/post-viewer/heading.svelte +4 -4
  131. package/dist/posts/post-viewer/media/post-media.svelte +1 -1
  132. package/dist/posts/post-viewer/post-texts.svelte +2 -2
  133. package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +1 -0
  134. package/dist/posts/posts-player/index.d.ts +31 -32
  135. package/dist/posts/posts-player/index.js +90 -35
  136. package/dist/posts/posts-player/posts-player-proxy.svelte +13 -4
  137. package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +1 -0
  138. package/dist/posts/posts-player/posts-player-view.svelte +1 -1
  139. package/dist/posts/posts-player/types.d.ts +2 -1
  140. package/dist/products/product-card/cmp.product-card.svelte +4 -16
  141. package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +6 -6
  142. package/dist/streams/layout/styles-transformer.d.ts +1 -1
  143. package/dist/streams/stream-card/cmp.stream-card.svelte +1 -1
  144. package/dist/streams/streams-player/cmp.streams-player.svelte +42 -0
  145. package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +24 -0
  146. package/dist/streams/streams-player/index.d.ts +18 -83
  147. package/dist/streams/streams-player/index.js +85 -65
  148. package/dist/streams/streams-player/stream-overview.svelte +1 -1
  149. package/dist/streams/streams-player/streams-player-buffer.svelte.js +2 -1
  150. package/dist/streams/streams-player/streams-player-proxy.svelte +32 -0
  151. package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +26 -0
  152. package/dist/streams/streams-player/streams-player-view.svelte +1 -1
  153. package/dist/streams/streams-player/types.d.ts +3 -1
  154. package/dist/ui/button/cmp.options-button.svelte +123 -0
  155. package/dist/ui/button/cmp.options-button.svelte.d.ts +20 -0
  156. package/dist/ui/button/index.d.ts +1 -0
  157. package/dist/ui/button/index.js +1 -0
  158. package/dist/ui/button/resources/button-theme.svelte +6 -143
  159. package/dist/ui/button/resources/button-types.d.ts +0 -1
  160. package/dist/ui/button/resources/button-types.js +0 -1
  161. package/dist/ui/icon/cmp.icon.svelte +8 -28
  162. package/dist/ui/image/cmp.image-rounded.svelte +3 -10
  163. package/dist/ui/image/cmp.image-stub.svelte +1 -4
  164. package/dist/ui/image/cmp.image.svelte +1 -4
  165. package/dist/ui/loading/cmp.loading.svelte +1 -4
  166. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte +2 -2
  167. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte.d.ts +2 -2
  168. package/dist/ui/player/button/cmp.player-button.svelte +7 -3
  169. package/dist/ui/player/button/cmp.player-buttons-group.svelte +4 -3
  170. package/dist/ui/player/button/cmp.player-buttons-group.svelte.d.ts +2 -2
  171. package/dist/ui/player/button/index.d.ts +1 -1
  172. package/dist/ui/player/button/types.d.ts +1 -1
  173. package/dist/ui/player/colors/index.d.ts +1 -1
  174. package/dist/ui/player/colors/index.js +1 -1
  175. package/dist/ui/player/colors/player-colors.d.ts +15 -1
  176. package/dist/ui/player/colors/player-colors.js +24 -1
  177. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +1 -0
  178. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +7 -1
  179. package/dist/ui/player/providers/default-feed-player-buffer.svelte.d.ts +1 -0
  180. package/dist/ui/player/providers/default-feed-player-buffer.svelte.js +7 -1
  181. package/dist/ui/player/providers/types.d.ts +3 -1
  182. package/dist/ui/shadow-dom/cmp.shadow-root.svelte +158 -0
  183. package/dist/ui/shadow-dom/colors.scss +74 -0
  184. package/dist/ui/shadow-dom/index.d.ts +1 -0
  185. package/dist/ui/shadow-dom/index.js +1 -0
  186. package/dist/ui/shadow-dom/shadow-root-service.js +0 -4
  187. package/dist/ui/slider/cmp.slider.svelte +5 -5
  188. package/package.json +5 -1
  189. package/dist/content-player/content-player-settings.d.ts +0 -12
  190. package/dist/content-player/content-player-settings.js +0 -22
  191. package/dist/media-center/config/internal-media-center-config.d.ts +0 -14
  192. package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +0 -4
  193. package/dist/media-center/media-center/discover/discover-header-localization.d.ts +0 -6
  194. package/dist/media-center/media-center/discover/discover-header-localization.js +0 -15
  195. package/dist/posts/handlers/index.d.ts +0 -1
  196. package/dist/posts/handlers/index.js +0 -1
  197. package/dist/short-videos/data-providers/index.d.ts +0 -1
  198. package/dist/short-videos/data-providers/index.js +0 -1
  199. package/dist/ui/with-background/cmp.with-background.svelte +0 -86
  200. package/dist/ui/with-background/index.d.ts +0 -1
  201. package/dist/ui/with-background/index.js +0 -1
  202. /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.d.ts +0 -0
  203. /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.js +0 -0
  204. /package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.js +0 -0
  205. /package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.d.ts +0 -0
  206. /package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.js +0 -0
  207. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.d.ts +0 -0
  208. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.js +0 -0
  209. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.js +0 -0
  210. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.graphql +0 -0
  211. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.d.ts +0 -0
  212. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.js +0 -0
  213. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.js +0 -0
  214. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.graphql +0 -0
  215. /package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte.d.ts +0 -0
  216. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.d.ts +0 -0
  217. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.js +0 -0
  218. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte.d.ts +0 -0
  219. /package/dist/ui/{with-background/cmp.with-background.svelte.d.ts → shadow-dom/cmp.shadow-root.svelte.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import { StreamStatus } from '../../core/enums';
2
- import type { StreamPlayerModel } from '../streams-player/types';
1
+ import { StreamStatus } from '../../../core/enums';
2
+ import type { StreamPlayerModel } from '../../../streams/streams-player/types';
3
3
  import type { Client } from '@urql/core';
4
4
  export declare const getStreamsCursor: (input: {
5
5
  filter: {
@@ -1,4 +1,4 @@
1
- import { StreamStatus } from '../../core/enums';
1
+ import { EmbedStreamsOrderBy, StreamStatus } from '../../../core/enums';
2
2
  import { mapToStreamPlayerModel } from './mapper';
3
3
  import { GetStreamsDocument } from './operations.generated';
4
4
  export const getStreamsCursor = async (input) => {
@@ -16,7 +16,11 @@ export const getStreamsCursor = async (input) => {
16
16
  showInFeed
17
17
  },
18
18
  limit,
19
- continuationToken
19
+ continuationToken,
20
+ sorting: {
21
+ orderBy: EmbedStreamsOrderBy.ContentUpdatedAt,
22
+ ascendingOrder: false
23
+ }
20
24
  }
21
25
  })
22
26
  .toPromise();
@@ -0,0 +1,3 @@
1
+ export { openMediaPageModal } from './media-page';
2
+ export { openStreamsPlayer } from './streams-player';
3
+ export { openShortVideosPlayer } from './short-videos-player';
@@ -0,0 +1,3 @@
1
+ export { openMediaPageModal } from './media-page';
2
+ export { openStreamsPlayer } from './streams-player';
3
+ export { openShortVideosPlayer } from './short-videos-player';
@@ -0,0 +1,83 @@
1
+ import type { Locale } from '../../core/locale';
2
+ import { type IMediaCenterDataProvider } from '../../media-center/config/types';
3
+ export type { IMediaCenterDataProvider };
4
+ /**
5
+ * Opens the media page modal using an internal media-center configuration.
6
+ *
7
+ * This function is a thin wrapper around the internal `openMediaPageModal`
8
+ * from `$lib/media-page`. It constructs an `InternalMediaCenterDataProvider`
9
+ * from the provided media page ID and GraphQL parameters, then opens
10
+ * the modal with that configuration.
11
+ *
12
+ * @param init Configuration options.
13
+ *
14
+ * @param {string} init.id
15
+ * Media page ID, used to construct an internal media-center config.
16
+ *
17
+ * @param {string} init.initiator
18
+ * Initiator identifier (used for tracking/analytics and GraphQL).
19
+ *
20
+ * @param {string} [init.graphqlOrigin]
21
+ * Optional GraphQL origin (base URL). If omitted, the default origin is
22
+ * determined internally.
23
+ *
24
+ * @param {Object} [init.viewerSettings]
25
+ * Viewer UI and behavior settings passed through to the internal
26
+ * `openMediaPageModal`.
27
+ *
28
+ * Fields of `viewerSettings`:
29
+ * - {boolean} [disableBackground]
30
+ * If true, hides the player's background image.
31
+ * - {boolean} [hideCloseButton]
32
+ * If true, hides the close button.
33
+ * - {Locale} [locale='en']
34
+ * Localization for the player UI. Supported values: 'en' | 'no'.
35
+ * If omitted, the default locale 'en' is used.
36
+ * - {boolean} [showStreamsCloudWatermark]
37
+ * If true, shows the StreamsCloud watermark.
38
+ * - {'light' | 'dark'} [theme]
39
+ * Optional theme for the player UI.
40
+ *
41
+ * @param {{ closed?: () => void }} [init.on]
42
+ * Optional event handlers.
43
+ *
44
+ * @param {() => void} [init.on.closed]
45
+ * Called after the modal is fully closed (after unmount and removal
46
+ * from the DOM).
47
+ *
48
+ * @returns {void}
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * import { openMediaPageModal } from '@streamscloud/embeddable/media-page';
53
+ *
54
+ * openMediaPageModal({
55
+ * id: 'media-page-123',
56
+ * initiator: 'marketing-campaign',
57
+ * graphqlOrigin: 'https://api.example.com',
58
+ * viewerSettings: {
59
+ * locale: 'en',
60
+ * hideCloseButton: false,
61
+ * theme: 'dark',
62
+ * },
63
+ * on: {
64
+ * closed: () => console.log('Media page modal closed'),
65
+ * },
66
+ * });
67
+ * ```
68
+ */
69
+ export declare function openMediaPageModal(init: {
70
+ id: string;
71
+ initiator: string;
72
+ graphqlOrigin?: string;
73
+ viewerSettings?: {
74
+ disableBackground?: boolean;
75
+ locale?: Locale;
76
+ showStreamsCloudWatermark?: boolean;
77
+ hideCloseButton?: boolean;
78
+ theme?: 'light' | 'dark';
79
+ };
80
+ on?: {
81
+ closed?: () => void;
82
+ };
83
+ }): void;
@@ -0,0 +1,82 @@
1
+ import { InternalMediaCenterDataProvider } from '../data-providers';
2
+ import {} from '../../media-center/config/types';
3
+ import { openMediaPageModal as openMediaPageModalInternal } from '../../media-page';
4
+ /**
5
+ * Opens the media page modal using an internal media-center configuration.
6
+ *
7
+ * This function is a thin wrapper around the internal `openMediaPageModal`
8
+ * from `$lib/media-page`. It constructs an `InternalMediaCenterDataProvider`
9
+ * from the provided media page ID and GraphQL parameters, then opens
10
+ * the modal with that configuration.
11
+ *
12
+ * @param init Configuration options.
13
+ *
14
+ * @param {string} init.id
15
+ * Media page ID, used to construct an internal media-center config.
16
+ *
17
+ * @param {string} init.initiator
18
+ * Initiator identifier (used for tracking/analytics and GraphQL).
19
+ *
20
+ * @param {string} [init.graphqlOrigin]
21
+ * Optional GraphQL origin (base URL). If omitted, the default origin is
22
+ * determined internally.
23
+ *
24
+ * @param {Object} [init.viewerSettings]
25
+ * Viewer UI and behavior settings passed through to the internal
26
+ * `openMediaPageModal`.
27
+ *
28
+ * Fields of `viewerSettings`:
29
+ * - {boolean} [disableBackground]
30
+ * If true, hides the player's background image.
31
+ * - {boolean} [hideCloseButton]
32
+ * If true, hides the close button.
33
+ * - {Locale} [locale='en']
34
+ * Localization for the player UI. Supported values: 'en' | 'no'.
35
+ * If omitted, the default locale 'en' is used.
36
+ * - {boolean} [showStreamsCloudWatermark]
37
+ * If true, shows the StreamsCloud watermark.
38
+ * - {'light' | 'dark'} [theme]
39
+ * Optional theme for the player UI.
40
+ *
41
+ * @param {{ closed?: () => void }} [init.on]
42
+ * Optional event handlers.
43
+ *
44
+ * @param {() => void} [init.on.closed]
45
+ * Called after the modal is fully closed (after unmount and removal
46
+ * from the DOM).
47
+ *
48
+ * @returns {void}
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * import { openMediaPageModal } from '@streamscloud/embeddable/media-page';
53
+ *
54
+ * openMediaPageModal({
55
+ * id: 'media-page-123',
56
+ * initiator: 'marketing-campaign',
57
+ * graphqlOrigin: 'https://api.example.com',
58
+ * viewerSettings: {
59
+ * locale: 'en',
60
+ * hideCloseButton: false,
61
+ * theme: 'dark',
62
+ * },
63
+ * on: {
64
+ * closed: () => console.log('Media page modal closed'),
65
+ * },
66
+ * });
67
+ * ```
68
+ */
69
+ export function openMediaPageModal(init) {
70
+ const { id, graphqlOrigin, initiator, viewerSettings, on } = init;
71
+ const dataProvider = new InternalMediaCenterDataProvider({ mediaPageId: id, graphqlOrigin, initiator });
72
+ openMediaPageModalInternal({
73
+ dataProvider,
74
+ viewerSettings: {
75
+ hideCloseButton: viewerSettings?.hideCloseButton,
76
+ locale: viewerSettings?.locale,
77
+ showStreamsCloudWatermark: true,
78
+ theme: viewerSettings?.theme
79
+ },
80
+ on
81
+ });
82
+ }
@@ -1,43 +1,53 @@
1
1
  import type { Locale } from '../../core/locale';
2
- import { type IMediaCenterConfig } from '../../media-center/config/types';
3
- export type { IMediaCenterConfig };
2
+ import { type IMediaCenterDataProvider } from '../../media-center/config/types';
3
+ export type { IMediaCenterDataProvider };
4
4
  /**
5
5
  * Opens the short videos player modal.
6
6
  *
7
+ * Uses an internal data provider configured by a list of short-video IDs,
8
+ * GraphQL parameters and optional media page configuration.
9
+ *
7
10
  * @param init Configuration options.
8
11
  *
9
- * IDs mode (overload 2)
12
+ * Required
10
13
  * @param {string[]} init.ids
11
14
  * List of short-video IDs to display.
12
15
  * @param {string} init.initiator
13
16
  * Identifier of the initiator (used for tracking/analytics and GraphQL).
17
+ *
18
+ * Optional
14
19
  * @param {string} [init.graphqlOrigin]
15
20
  * Optional GraphQL origin (base URL). If omitted, the default origin is determined internally.
16
21
  * @param {string} [init.initialId]
17
22
  * ID of the video to open first (optional).
18
23
  * @param {string} [init.mediaPageId]
19
24
  * Optional media page ID used to construct an internal media-center config.
25
+ * If provided, the short videos player will be opened inside a media page modal.
20
26
  *
21
27
  * Player settings
22
- * @param {IPostSocialInteractionsHandler} [init.socialInteractionsHandler]
23
- * Handler for social interactions (like, share, etc.).
24
- * @param [init.playerSettings]
28
+ * @param {Object} [init.playerSettings]
25
29
  * Player UI and behavior settings.
26
30
  *
27
- * Fields of ContentPlayerSettings:
31
+ * Fields of playerSettings:
32
+ * - {boolean} [disableBackground]
33
+ * If true, hides the player's background image.
28
34
  * - {boolean} [hideCloseButton]
29
35
  * If true, hides the close button.
30
36
  * - {Locale} [locale='en']
31
37
  * Localization for the player UI. Supported values: 'en' | 'no'.
32
38
  * If omitted, the default locale 'en' is used.
39
+ * - {boolean} [showStreamsCloudWatermark]
40
+ * If true, shows the StreamsCloud watermark.
41
+ * - {'light' | 'dark'} [theme]
42
+ * Optional theme for the player UI.
33
43
  *
34
44
  * Events
35
- * @param {{ playerClosed?: () => void; videoActivated?: (id: string) => void }} [init.on]
45
+ * @param {{ playerClosed?: () => void; postActivated?: (id: string) => void }} [init.on]
36
46
  * Optional event handlers.
37
47
  * @param {() => void} [init.on.playerClosed]
38
48
  * Called after the player is fully closed (after unmount and removal from the DOM).
39
- * @param {(id: string) => void} [init.on.videoActivated]
40
- * Called when a video becomes active (receives the video's id).
49
+ * @param {(id: string) => void} [init.on.postActivated]
50
+ * Called when a short video becomes active (receives the video's id).
41
51
  *
42
52
  * @returns {void}
43
53
  *
@@ -57,6 +67,7 @@ export type { IMediaCenterConfig };
57
67
  * disableBackground: false,
58
68
  * hideCloseButton: false,
59
69
  * showStreamsCloudWatermark: true,
70
+ * theme: 'dark',
60
71
  * },
61
72
  * on: {
62
73
  * playerClosed: () => console.log('Player closed'),
@@ -71,10 +82,14 @@ export declare function openShortVideosPlayer(init: {
71
82
  initialId?: string;
72
83
  mediaPageId?: string;
73
84
  playerSettings?: {
74
- hideCloseButton?: boolean;
85
+ disableBackground?: boolean;
75
86
  locale?: Locale;
87
+ showStreamsCloudWatermark?: boolean;
88
+ hideCloseButton?: boolean;
89
+ theme?: 'light' | 'dark';
76
90
  };
77
91
  on?: {
78
92
  playerClosed?: () => void;
93
+ postActivated?: (id: string) => void;
79
94
  };
80
- }): Promise<void>;
95
+ }): void;
@@ -1,45 +1,54 @@
1
- import { InternalMediaCenterConfig } from '../../media-center/config/internal-media-center-config';
1
+ import { InternalMediaCenterDataProvider, InternalShortVideoPlayerItemsProvider, InternalPostAnalyticsHandler } from '../data-providers';
2
2
  import {} from '../../media-center/config/types';
3
- import { InternalPostAnalyticsHandler } from '../../posts/handlers';
3
+ import { openMediaPageModalWithInitialPostsProvider } from '../../media-page';
4
4
  import { openPostsPlayer } from '../../posts/posts-player';
5
- import { InternalShortVideoPlayerItemsProvider } from '../data-providers';
6
5
  /**
7
6
  * Opens the short videos player modal.
8
7
  *
8
+ * Uses an internal data provider configured by a list of short-video IDs,
9
+ * GraphQL parameters and optional media page configuration.
10
+ *
9
11
  * @param init Configuration options.
10
12
  *
11
- * IDs mode (overload 2)
13
+ * Required
12
14
  * @param {string[]} init.ids
13
15
  * List of short-video IDs to display.
14
16
  * @param {string} init.initiator
15
17
  * Identifier of the initiator (used for tracking/analytics and GraphQL).
18
+ *
19
+ * Optional
16
20
  * @param {string} [init.graphqlOrigin]
17
21
  * Optional GraphQL origin (base URL). If omitted, the default origin is determined internally.
18
22
  * @param {string} [init.initialId]
19
23
  * ID of the video to open first (optional).
20
24
  * @param {string} [init.mediaPageId]
21
25
  * Optional media page ID used to construct an internal media-center config.
26
+ * If provided, the short videos player will be opened inside a media page modal.
22
27
  *
23
28
  * Player settings
24
- * @param {IPostSocialInteractionsHandler} [init.socialInteractionsHandler]
25
- * Handler for social interactions (like, share, etc.).
26
- * @param [init.playerSettings]
29
+ * @param {Object} [init.playerSettings]
27
30
  * Player UI and behavior settings.
28
31
  *
29
- * Fields of ContentPlayerSettings:
32
+ * Fields of playerSettings:
33
+ * - {boolean} [disableBackground]
34
+ * If true, hides the player's background image.
30
35
  * - {boolean} [hideCloseButton]
31
36
  * If true, hides the close button.
32
37
  * - {Locale} [locale='en']
33
38
  * Localization for the player UI. Supported values: 'en' | 'no'.
34
39
  * If omitted, the default locale 'en' is used.
40
+ * - {boolean} [showStreamsCloudWatermark]
41
+ * If true, shows the StreamsCloud watermark.
42
+ * - {'light' | 'dark'} [theme]
43
+ * Optional theme for the player UI.
35
44
  *
36
45
  * Events
37
- * @param {{ playerClosed?: () => void; videoActivated?: (id: string) => void }} [init.on]
46
+ * @param {{ playerClosed?: () => void; postActivated?: (id: string) => void }} [init.on]
38
47
  * Optional event handlers.
39
48
  * @param {() => void} [init.on.playerClosed]
40
49
  * Called after the player is fully closed (after unmount and removal from the DOM).
41
- * @param {(id: string) => void} [init.on.videoActivated]
42
- * Called when a video becomes active (receives the video's id).
50
+ * @param {(id: string) => void} [init.on.postActivated]
51
+ * Called when a short video becomes active (receives the video's id).
43
52
  *
44
53
  * @returns {void}
45
54
  *
@@ -59,6 +68,7 @@ import { InternalShortVideoPlayerItemsProvider } from '../data-providers';
59
68
  * disableBackground: false,
60
69
  * hideCloseButton: false,
61
70
  * showStreamsCloudWatermark: true,
71
+ * theme: 'dark',
62
72
  * },
63
73
  * on: {
64
74
  * playerClosed: () => console.log('Player closed'),
@@ -66,32 +76,29 @@ import { InternalShortVideoPlayerItemsProvider } from '../data-providers';
66
76
  * });
67
77
  * ```
68
78
  */
69
- export async function openShortVideosPlayer(init) {
79
+ export function openShortVideosPlayer(init) {
70
80
  const { ids, graphqlOrigin, initialId, initiator, playerSettings, on } = init;
71
81
  const dataProvider = new InternalShortVideoPlayerItemsProvider({ ids, graphqlOrigin, initialId, initiator });
72
- const mediaCenterConfig = init.mediaPageId ? new InternalMediaCenterConfig({ mediaPageId: init.mediaPageId, graphqlOrigin, initiator }) : undefined;
82
+ const mediaCenterDataProvider = init.mediaPageId
83
+ ? new InternalMediaCenterDataProvider({ mediaPageId: init.mediaPageId, graphqlOrigin, initiator })
84
+ : undefined;
73
85
  const analyticsHandler = new InternalPostAnalyticsHandler(graphqlOrigin);
74
- if (mediaCenterConfig) {
75
- openPostsPlayer({
76
- postsProvider: dataProvider,
77
- mediaCenterConfig,
78
- playerSettings: {
79
- hideCloseButton: playerSettings?.hideCloseButton,
80
- locale: playerSettings?.locale,
81
- showStreamsCloudWatermark: true
82
- },
83
- on
86
+ if (mediaCenterDataProvider) {
87
+ openMediaPageModalWithInitialPostsProvider({
88
+ dataProvider: dataProvider,
89
+ mediaCenterDataProvider,
90
+ viewerSettings: playerSettings,
91
+ on: {
92
+ closed: on?.playerClosed,
93
+ postActivated: on?.postActivated
94
+ }
84
95
  });
85
96
  }
86
97
  else {
87
98
  openPostsPlayer({
88
99
  postsProvider: dataProvider,
89
100
  analyticsHandler,
90
- playerSettings: {
91
- hideCloseButton: playerSettings?.hideCloseButton,
92
- locale: playerSettings?.locale,
93
- showStreamsCloudWatermark: true
94
- },
101
+ playerSettings: playerSettings,
95
102
  on
96
103
  });
97
104
  }
@@ -0,0 +1,105 @@
1
+ import type { Locale } from '../../core/locale';
2
+ import { type IMediaCenterDataProvider } from '../../media-center/config/types';
3
+ import type { StreamPageViewerModel } from '../../streams/stream-page-viewer/types';
4
+ import type { IStreamAnalyticsHandler, IStreamsPlayerDataProvider, StreamAmplificationParameters, StreamPlayerModel } from '../../streams/streams-player/types';
5
+ export { type StreamPlayerModel, type StreamPageViewerModel };
6
+ export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterDataProvider };
7
+ /**
8
+ * Opens the streams player modal.
9
+ *
10
+ * Uses an internal data provider configured by a list of stream IDs,
11
+ * GraphQL parameters and optional media page configuration.
12
+ *
13
+ * @param init Configuration options.
14
+ *
15
+ * Required
16
+ * @param {string[]} init.ids
17
+ * List of stream IDs to display.
18
+ * @param {string} init.initiator
19
+ * Initiator identifier (used for tracking/analytics and GraphQL).
20
+ *
21
+ * Optional
22
+ * @param {string} [init.graphqlOrigin]
23
+ * Optional GraphQL origin (base URL). If omitted, the default origin is determined internally.
24
+ * @param {string} [init.initialId]
25
+ * ID of the stream to open first (optional).
26
+ * @param {string} [init.mediaPageId]
27
+ * Optional media page ID used to construct an internal media-center config.
28
+ * If provided, the streams player will be opened inside a media page modal.
29
+ * @param {StreamAmplificationParameters} [init.amplificationParameters]
30
+ * Optional parameters to configure amplification behavior.
31
+ * @param {Object} [init.playerSettings]
32
+ * Player UI and behavior settings.
33
+ *
34
+ * Fields of playerSettings:
35
+ * - {boolean} [disableBackground]
36
+ * If true, hides the player's background image.
37
+ * - {boolean} [hideCloseButton]
38
+ * If true, hides the close button.
39
+ * - {Locale} [locale='en']
40
+ * Localization for the player UI. Supported values: 'en' | 'no'.
41
+ * If omitted, the default locale 'en' is used.
42
+ * - {boolean} [showStreamsCloudWatermark]
43
+ * If true, shows the StreamsCloud watermark.
44
+ * - {'light' | 'dark'} [theme]
45
+ * Optional theme for the player UI.
46
+ *
47
+ * Events
48
+ * @param {{ streamActivated?: (data: { title: string; image: string | null }) => void; playerClosed?: () => void }} [init.on]
49
+ * Optional event handlers.
50
+ * @param {(data: { title: string; image: string | null }) => void} [init.on.streamActivated]
51
+ * Called when the stream becomes active. Receives a subset of data with title and image.
52
+ * @param {() => void} [init.on.playerClosed]
53
+ * Called after the player is fully closed (after unmount and removal from the DOM).
54
+ *
55
+ * @returns {void}
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * import { openStreamsPlayer } from '@streamscloud/embeddable/stream-player';
60
+ *
61
+ * openStreamsPlayer({
62
+ * ids: ['stream_123'],
63
+ * initiator: 'marketing-campaign',
64
+ * graphqlOrigin: 'https://api.example.com',
65
+ * mediaPageId: 'media-page-123',
66
+ * amplificationParameters: {
67
+ * // ...your amplification parameters
68
+ * },
69
+ * playerSettings: {
70
+ * // Locale defaults to 'en'; set 'no' to switch to Norwegian:
71
+ * locale: 'no',
72
+ * disableBackground: false,
73
+ * hideCloseButton: false,
74
+ * showStreamsCloudWatermark: true,
75
+ * theme: 'dark',
76
+ * },
77
+ * on: {
78
+ * streamActivated: ({ title, image }) => console.log('Stream active:', title, image),
79
+ * playerClosed: () => console.log('Player closed'),
80
+ * },
81
+ * });
82
+ * ```
83
+ */
84
+ export declare function openStreamsPlayer(init: {
85
+ ids: string[];
86
+ initiator: string;
87
+ graphqlOrigin?: string;
88
+ initialId?: string;
89
+ mediaPageId?: string;
90
+ amplificationParameters?: StreamAmplificationParameters;
91
+ playerSettings?: {
92
+ disableBackground?: boolean;
93
+ locale?: Locale;
94
+ showStreamsCloudWatermark?: boolean;
95
+ hideCloseButton?: boolean;
96
+ theme?: 'light' | 'dark';
97
+ };
98
+ on?: {
99
+ streamActivated?: (data: {
100
+ title: string;
101
+ image: string | null;
102
+ }) => void;
103
+ playerClosed?: () => void;
104
+ };
105
+ }): void;
@@ -0,0 +1,110 @@
1
+ import { InternalMediaCenterDataProvider, InternalStreamsPlayerDataProvider, InternalStreamAnalyticsHandler } from '../data-providers';
2
+ import {} from '../../media-center/config/types';
3
+ import { openMediaPageModalWithInitialStreamsProvider } from '../../media-page';
4
+ import { openStreamsPlayer as openStreamsPlayerInternal } from '../../streams/streams-player';
5
+ export {};
6
+ /**
7
+ * Opens the streams player modal.
8
+ *
9
+ * Uses an internal data provider configured by a list of stream IDs,
10
+ * GraphQL parameters and optional media page configuration.
11
+ *
12
+ * @param init Configuration options.
13
+ *
14
+ * Required
15
+ * @param {string[]} init.ids
16
+ * List of stream IDs to display.
17
+ * @param {string} init.initiator
18
+ * Initiator identifier (used for tracking/analytics and GraphQL).
19
+ *
20
+ * Optional
21
+ * @param {string} [init.graphqlOrigin]
22
+ * Optional GraphQL origin (base URL). If omitted, the default origin is determined internally.
23
+ * @param {string} [init.initialId]
24
+ * ID of the stream to open first (optional).
25
+ * @param {string} [init.mediaPageId]
26
+ * Optional media page ID used to construct an internal media-center config.
27
+ * If provided, the streams player will be opened inside a media page modal.
28
+ * @param {StreamAmplificationParameters} [init.amplificationParameters]
29
+ * Optional parameters to configure amplification behavior.
30
+ * @param {Object} [init.playerSettings]
31
+ * Player UI and behavior settings.
32
+ *
33
+ * Fields of playerSettings:
34
+ * - {boolean} [disableBackground]
35
+ * If true, hides the player's background image.
36
+ * - {boolean} [hideCloseButton]
37
+ * If true, hides the close button.
38
+ * - {Locale} [locale='en']
39
+ * Localization for the player UI. Supported values: 'en' | 'no'.
40
+ * If omitted, the default locale 'en' is used.
41
+ * - {boolean} [showStreamsCloudWatermark]
42
+ * If true, shows the StreamsCloud watermark.
43
+ * - {'light' | 'dark'} [theme]
44
+ * Optional theme for the player UI.
45
+ *
46
+ * Events
47
+ * @param {{ streamActivated?: (data: { title: string; image: string | null }) => void; playerClosed?: () => void }} [init.on]
48
+ * Optional event handlers.
49
+ * @param {(data: { title: string; image: string | null }) => void} [init.on.streamActivated]
50
+ * Called when the stream becomes active. Receives a subset of data with title and image.
51
+ * @param {() => void} [init.on.playerClosed]
52
+ * Called after the player is fully closed (after unmount and removal from the DOM).
53
+ *
54
+ * @returns {void}
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * import { openStreamsPlayer } from '@streamscloud/embeddable/stream-player';
59
+ *
60
+ * openStreamsPlayer({
61
+ * ids: ['stream_123'],
62
+ * initiator: 'marketing-campaign',
63
+ * graphqlOrigin: 'https://api.example.com',
64
+ * mediaPageId: 'media-page-123',
65
+ * amplificationParameters: {
66
+ * // ...your amplification parameters
67
+ * },
68
+ * playerSettings: {
69
+ * // Locale defaults to 'en'; set 'no' to switch to Norwegian:
70
+ * locale: 'no',
71
+ * disableBackground: false,
72
+ * hideCloseButton: false,
73
+ * showStreamsCloudWatermark: true,
74
+ * theme: 'dark',
75
+ * },
76
+ * on: {
77
+ * streamActivated: ({ title, image }) => console.log('Stream active:', title, image),
78
+ * playerClosed: () => console.log('Player closed'),
79
+ * },
80
+ * });
81
+ * ```
82
+ */
83
+ export function openStreamsPlayer(init) {
84
+ const { ids, initialId, graphqlOrigin, initiator, amplificationParameters, playerSettings, on } = init;
85
+ const dataProvider = new InternalStreamsPlayerDataProvider({ ids, initialId, graphqlOrigin, initiator });
86
+ const mediaCenterDataProvider = init.mediaPageId
87
+ ? new InternalMediaCenterDataProvider({ mediaPageId: init.mediaPageId, graphqlOrigin, initiator })
88
+ : undefined;
89
+ const analyticsHandler = new InternalStreamAnalyticsHandler(graphqlOrigin);
90
+ if (mediaCenterDataProvider) {
91
+ openMediaPageModalWithInitialStreamsProvider({
92
+ dataProvider: dataProvider,
93
+ mediaCenterDataProvider,
94
+ viewerSettings: playerSettings,
95
+ on: {
96
+ closed: on?.playerClosed,
97
+ streamActivated: on?.streamActivated
98
+ }
99
+ });
100
+ }
101
+ else {
102
+ openStreamsPlayerInternal({
103
+ dataProvider,
104
+ analyticsHandler,
105
+ amplificationParameters,
106
+ playerSettings,
107
+ on
108
+ });
109
+ }
110
+ }