@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.
- package/dist/ads/ad-card/cmp.ad-card.svelte +4 -16
- package/dist/content-player/cmp.content-player.svelte +1 -1
- package/dist/content-player/content-player-config.svelte.d.ts +2 -12
- package/dist/content-player/content-player-config.svelte.js +1 -1
- package/dist/content-player/content-player-settings.svelte.d.ts +16 -0
- package/dist/content-player/content-player-settings.svelte.js +27 -0
- package/dist/content-player/controls-and-attachments.svelte +32 -2
- package/dist/content-player/controls-and-attachments.svelte.d.ts +1 -0
- package/dist/content-player/index.d.ts +1 -0
- package/dist/content-player/index.js +1 -0
- package/dist/content-player/overview-panel.svelte +2 -2
- package/dist/content-player/ui-manager.svelte.d.ts +2 -1
- package/dist/content-player/ui-manager.svelte.js +2 -1
- package/dist/core/enums.d.ts +3 -0
- package/dist/core/enums.js +4 -0
- package/dist/core/theme/index.d.ts +2 -0
- package/dist/core/theme/index.js +1 -0
- package/dist/core/theme/theme-store.svelte.d.ts +6 -0
- package/dist/core/theme/theme-store.svelte.js +10 -0
- package/dist/external-api/data-providers/index.d.ts +6 -0
- package/dist/external-api/data-providers/index.js +6 -0
- package/dist/external-api/data-providers/internal-media-center-data-provider.svelte.d.ts +15 -0
- package/dist/{media-center/config/internal-media-center-config.js → external-api/data-providers/internal-media-center-data-provider.svelte.js} +33 -17
- package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.d.ts +1 -1
- package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.js +1 -1
- package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.d.ts +1 -1
- package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.d.ts +1 -1
- package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.js +1 -1
- package/dist/{media-center/config → external-api/data-providers}/operations.generated.d.ts +6 -0
- package/dist/{media-center/config → external-api/data-providers}/operations.generated.js +13 -0
- package/dist/{media-center/config → external-api/data-providers}/operations.graphql +6 -0
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.d.ts +1 -1
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.js +2 -2
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.d.ts +1 -1
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.d.ts +2 -2
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.js +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.d.ts +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.js +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.d.ts +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.d.ts +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.js +2 -2
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.d.ts +2 -2
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.js +6 -2
- package/dist/external-api/index.d.ts +3 -0
- package/dist/external-api/index.js +3 -0
- package/dist/external-api/media-page/index.d.ts +83 -0
- package/dist/external-api/media-page/index.js +82 -0
- package/dist/{short-videos → external-api}/short-videos-player/index.d.ts +27 -12
- package/dist/{short-videos → external-api}/short-videos-player/index.js +35 -28
- package/dist/external-api/streams-player/index.d.ts +105 -0
- package/dist/external-api/streams-player/index.js +110 -0
- package/dist/media-center/config/types.d.ts +28 -27
- package/dist/media-center/index.d.ts +3 -1
- package/dist/media-center/media-center/cmp.media-center-proxy.svelte +59 -0
- package/dist/media-center/media-center/cmp.media-center-proxy.svelte.d.ts +15 -0
- package/dist/media-center/media-center/discover/community-features-localization.d.ts +8 -0
- package/dist/media-center/media-center/discover/community-features-localization.js +31 -0
- package/dist/media-center/media-center/discover/community-features.svelte +171 -0
- package/dist/media-center/media-center/discover/community-features.svelte.d.ts +11 -0
- package/dist/media-center/media-center/discover/data-loading.d.ts +3 -3
- package/dist/media-center/media-center/discover/data-loading.js +5 -5
- package/dist/media-center/media-center/discover/discover-header.svelte +13 -65
- package/dist/media-center/media-center/discover/discover-header.svelte.d.ts +0 -2
- package/dist/media-center/media-center/discover/discover-view-handler.svelte.d.ts +3 -3
- package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +4 -4
- package/dist/media-center/media-center/discover/discover-view.svelte +6 -6
- package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +0 -2
- package/dist/media-center/media-center/feed/feed-handler.svelte.d.ts +5 -3
- package/dist/media-center/media-center/feed/feed-handler.svelte.js +18 -10
- package/dist/media-center/media-center/feed/feed-providers-generator.d.ts +11 -5
- package/dist/media-center/media-center/feed/feed-providers-generator.js +13 -9
- package/dist/media-center/media-center/footer/index.d.ts +1 -0
- package/dist/media-center/media-center/footer/index.js +1 -0
- package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte +5 -5
- package/dist/media-center/media-center/handlers/categories-handler.svelte.d.ts +3 -5
- package/dist/media-center/media-center/handlers/categories-handler.svelte.js +16 -13
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +18 -5
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +21 -9
- package/dist/media-center/media-center/{header-footer → header}/index.d.ts +0 -1
- package/dist/media-center/media-center/{header-footer → header}/index.js +0 -1
- package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte +5 -4
- package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte +138 -35
- package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte.d.ts +2 -2
- package/dist/media-center/media-center/index.d.ts +2 -1
- package/dist/media-center/media-center/index.js +2 -1
- package/dist/media-center/media-center/media-center-context.svelte.d.ts +16 -20
- package/dist/media-center/media-center/media-center-context.svelte.js +61 -19
- package/dist/media-center/media-center/media-center-settings.svelte.d.ts +11 -0
- package/dist/media-center/media-center/media-center-settings.svelte.js +23 -0
- package/dist/media-center/media-center/{cmp.media-center.svelte → media-center-view.svelte} +65 -108
- package/dist/media-center/media-center/media-center-view.svelte.d.ts +9 -0
- package/dist/media-center/media-center/menu/category-following-wrapper.svelte.d.ts +1 -1
- package/dist/media-center/media-center/menu/menu.svelte +40 -35
- package/dist/media-center/media-center/menu/menu.svelte.d.ts +0 -2
- package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.d.ts +3 -3
- package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.js +4 -4
- package/dist/media-center/media-center/moments/cmp.moments-circle.svelte +24 -7
- package/dist/media-center/media-center/moments/index.d.ts +1 -0
- package/dist/media-center/media-center/moments/index.js +1 -0
- package/dist/media-center/media-center/moments/moments-feed-handler.svelte.d.ts +26 -0
- package/dist/media-center/media-center/moments/moments-feed-handler.svelte.js +49 -0
- package/dist/media-center/media-center/moments/moments-state.svelte.d.ts +20 -0
- package/dist/media-center/media-center/moments/moments-state.svelte.js +82 -0
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.d.ts +3 -3
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.js +4 -4
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -3
- package/dist/media-center/media-center/types.d.ts +4 -11
- package/dist/media-center/membership/index.d.ts +1 -0
- package/dist/media-center/membership/index.js +1 -0
- package/dist/media-center/membership/mock-membership-handler.svelte.d.ts +10 -0
- package/dist/media-center/membership/mock-membership-handler.svelte.js +21 -0
- package/dist/media-center/membership/types.d.ts +10 -0
- package/dist/media-center/membership/types.js +1 -0
- package/dist/media-center/navigation/index.d.ts +2 -0
- package/dist/media-center/navigation/index.js +1 -0
- package/dist/media-center/navigation/media-center-state.d.ts +19 -0
- package/dist/media-center/navigation/media-center-state.js +1 -0
- package/dist/media-center/navigation/mock-navigation-handler.svelte.d.ts +6 -0
- package/dist/media-center/navigation/mock-navigation-handler.svelte.js +6 -0
- package/dist/media-center/navigation/types.d.ts +5 -0
- package/dist/media-center/navigation/types.js +1 -0
- package/dist/media-page/cmp.media-page.svelte +45 -0
- package/dist/media-page/cmp.media-page.svelte.d.ts +11 -0
- package/dist/media-page/index.d.ts +42 -58
- package/dist/media-page/index.js +131 -17
- package/dist/posts/attachments/cmp.attachments.svelte +1 -1
- package/dist/posts/controls/cmp.controls.svelte +4 -1
- package/dist/posts/controls/cmp.controls.svelte.d.ts +2 -0
- package/dist/posts/post-viewer/attachments-horizontal.svelte +4 -12
- package/dist/posts/post-viewer/heading.svelte +4 -4
- package/dist/posts/post-viewer/media/post-media.svelte +1 -1
- package/dist/posts/post-viewer/post-texts.svelte +2 -2
- package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +1 -0
- package/dist/posts/posts-player/index.d.ts +31 -32
- package/dist/posts/posts-player/index.js +90 -35
- package/dist/posts/posts-player/posts-player-proxy.svelte +13 -4
- package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +1 -0
- package/dist/posts/posts-player/posts-player-view.svelte +1 -1
- package/dist/posts/posts-player/types.d.ts +2 -1
- package/dist/products/product-card/cmp.product-card.svelte +4 -16
- package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +6 -6
- package/dist/streams/layout/styles-transformer.d.ts +1 -1
- package/dist/streams/stream-card/cmp.stream-card.svelte +1 -1
- package/dist/streams/streams-player/cmp.streams-player.svelte +42 -0
- package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +24 -0
- package/dist/streams/streams-player/index.d.ts +18 -83
- package/dist/streams/streams-player/index.js +85 -65
- package/dist/streams/streams-player/stream-overview.svelte +1 -1
- package/dist/streams/streams-player/streams-player-buffer.svelte.js +2 -1
- package/dist/streams/streams-player/streams-player-proxy.svelte +32 -0
- package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +26 -0
- package/dist/streams/streams-player/streams-player-view.svelte +1 -1
- package/dist/streams/streams-player/types.d.ts +3 -1
- package/dist/ui/button/cmp.options-button.svelte +123 -0
- package/dist/ui/button/cmp.options-button.svelte.d.ts +20 -0
- package/dist/ui/button/index.d.ts +1 -0
- package/dist/ui/button/index.js +1 -0
- package/dist/ui/button/resources/button-theme.svelte +6 -143
- package/dist/ui/button/resources/button-types.d.ts +0 -1
- package/dist/ui/button/resources/button-types.js +0 -1
- package/dist/ui/icon/cmp.icon.svelte +8 -28
- package/dist/ui/image/cmp.image-rounded.svelte +3 -10
- package/dist/ui/image/cmp.image-stub.svelte +1 -4
- package/dist/ui/image/cmp.image.svelte +1 -4
- package/dist/ui/loading/cmp.loading.svelte +1 -4
- package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte +2 -2
- package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte.d.ts +2 -2
- package/dist/ui/player/button/cmp.player-button.svelte +7 -3
- package/dist/ui/player/button/cmp.player-buttons-group.svelte +4 -3
- package/dist/ui/player/button/cmp.player-buttons-group.svelte.d.ts +2 -2
- package/dist/ui/player/button/index.d.ts +1 -1
- package/dist/ui/player/button/types.d.ts +1 -1
- package/dist/ui/player/colors/index.d.ts +1 -1
- package/dist/ui/player/colors/index.js +1 -1
- package/dist/ui/player/colors/player-colors.d.ts +15 -1
- package/dist/ui/player/colors/player-colors.js +24 -1
- package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +1 -0
- package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +7 -1
- package/dist/ui/player/providers/default-feed-player-buffer.svelte.d.ts +1 -0
- package/dist/ui/player/providers/default-feed-player-buffer.svelte.js +7 -1
- package/dist/ui/player/providers/types.d.ts +3 -1
- package/dist/ui/shadow-dom/cmp.shadow-root.svelte +158 -0
- package/dist/ui/shadow-dom/colors.scss +74 -0
- package/dist/ui/shadow-dom/index.d.ts +1 -0
- package/dist/ui/shadow-dom/index.js +1 -0
- package/dist/ui/shadow-dom/shadow-root-service.js +0 -4
- package/dist/ui/slider/cmp.slider.svelte +5 -5
- package/package.json +5 -1
- package/dist/content-player/content-player-settings.d.ts +0 -12
- package/dist/content-player/content-player-settings.js +0 -22
- package/dist/media-center/config/internal-media-center-config.d.ts +0 -14
- package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +0 -4
- package/dist/media-center/media-center/discover/discover-header-localization.d.ts +0 -6
- package/dist/media-center/media-center/discover/discover-header-localization.js +0 -15
- package/dist/posts/handlers/index.d.ts +0 -1
- package/dist/posts/handlers/index.js +0 -1
- package/dist/short-videos/data-providers/index.d.ts +0 -1
- package/dist/short-videos/data-providers/index.js +0 -1
- package/dist/ui/with-background/cmp.with-background.svelte +0 -86
- package/dist/ui/with-background/index.d.ts +0 -1
- package/dist/ui/with-background/index.js +0 -1
- /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.d.ts +0 -0
- /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.js +0 -0
- /package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.js +0 -0
- /package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.d.ts +0 -0
- /package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.js +0 -0
- /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.d.ts +0 -0
- /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.js +0 -0
- /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.js +0 -0
- /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.graphql +0 -0
- /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.d.ts +0 -0
- /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.js +0 -0
- /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.js +0 -0
- /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.graphql +0 -0
- /package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte.d.ts +0 -0
- /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.d.ts +0 -0
- /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.js +0 -0
- /package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte.d.ts +0 -0
- /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 '
|
|
2
|
-
import type { StreamPlayerModel } from '
|
|
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 '
|
|
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,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
|
|
3
|
-
export type {
|
|
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
|
-
*
|
|
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 {
|
|
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
|
|
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;
|
|
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.
|
|
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
|
-
|
|
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
|
-
}):
|
|
95
|
+
}): void;
|
|
@@ -1,45 +1,54 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InternalMediaCenterDataProvider, InternalShortVideoPlayerItemsProvider, InternalPostAnalyticsHandler } from '../data-providers';
|
|
2
2
|
import {} from '../../media-center/config/types';
|
|
3
|
-
import {
|
|
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
|
-
*
|
|
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 {
|
|
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
|
|
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;
|
|
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.
|
|
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
|
|
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
|
|
82
|
+
const mediaCenterDataProvider = init.mediaPageId
|
|
83
|
+
? new InternalMediaCenterDataProvider({ mediaPageId: init.mediaPageId, graphqlOrigin, initiator })
|
|
84
|
+
: undefined;
|
|
73
85
|
const analyticsHandler = new InternalPostAnalyticsHandler(graphqlOrigin);
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
+
}
|