@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
|
@@ -103,8 +103,8 @@ const styles = $derived.by(() => {
|
|
|
103
103
|
.product-card {
|
|
104
104
|
--_product-card--aspect-ratio: var(--product-card--aspect-ratio, 10/16);
|
|
105
105
|
--_product-card--border-radius: var(--product-card--border-radius, 0.5rem);
|
|
106
|
-
--_product-card--background-color: var(--product-card--background-color, rgb(from
|
|
107
|
-
--_product-card--border-color: var(--product-card--background-color,
|
|
106
|
+
--_product-card--background-color: var(--product-card--background-color, rgb(from var(--sc-mc-color--bg-card) r g b/90%));
|
|
107
|
+
--_product-card--border-color: var(--product-card--background-color, var(--sc-mc-color--border-card));
|
|
108
108
|
--_product-card--price-color: var(--product-card--price-color, inherit);
|
|
109
109
|
--_product-card--sale-price-color: var(--product-card--sale-price-color, inherit);
|
|
110
110
|
--product-price-color: var(--_product-card--price-color);
|
|
@@ -120,7 +120,6 @@ const styles = $derived.by(() => {
|
|
|
120
120
|
position: relative;
|
|
121
121
|
container-type: inline-size;
|
|
122
122
|
aspect-ratio: var(--_product-card--aspect-ratio);
|
|
123
|
-
color: #000000;
|
|
124
123
|
background-color: var(--_product-card--background-color);
|
|
125
124
|
border: 1px solid var(--_product-card--border-color);
|
|
126
125
|
border-radius: var(--_product-card--border-radius);
|
|
@@ -128,11 +127,6 @@ const styles = $derived.by(() => {
|
|
|
128
127
|
justify-content: space-between;
|
|
129
128
|
/* Set 'container-type: inline-size;' to reference container*/
|
|
130
129
|
}
|
|
131
|
-
:global([data-theme="dark"]) .product-card {
|
|
132
|
-
--_product-card--background-color: var(--product-card--background-color, rgb(from #121212 r g b/90%));
|
|
133
|
-
--_product-card--border-color: var(--product-card--background-color, #1e1e1e);
|
|
134
|
-
color: #ffffff;
|
|
135
|
-
}
|
|
136
130
|
@container (width < 230px) {
|
|
137
131
|
.product-card {
|
|
138
132
|
padding: 0.5rem 0.5rem 0.75rem;
|
|
@@ -181,15 +175,12 @@ const styles = $derived.by(() => {
|
|
|
181
175
|
}
|
|
182
176
|
.product-card__description {
|
|
183
177
|
font-weight: 400;
|
|
184
|
-
color:
|
|
178
|
+
color: var(--sc-mc-color--text-secondary);
|
|
185
179
|
font-size: 0.9375rem;
|
|
186
180
|
line-height: 1.375rem;
|
|
187
181
|
min-height: 1.375rem;
|
|
188
182
|
/* Set 'container-type: inline-size;' to reference container*/
|
|
189
183
|
}
|
|
190
|
-
:global([data-theme="dark"]) .product-card__description {
|
|
191
|
-
color: #d1d5db;
|
|
192
|
-
}
|
|
193
184
|
@container (width < 230px) {
|
|
194
185
|
.product-card__description {
|
|
195
186
|
font-size: 0.625rem;
|
|
@@ -217,7 +208,7 @@ const styles = $derived.by(() => {
|
|
|
217
208
|
.product-price {
|
|
218
209
|
--_product-price--color: var(--product-price-color);
|
|
219
210
|
--_product-price--sale--color: var(--product-price--sale--color);
|
|
220
|
-
--_product-price--before--color:
|
|
211
|
+
--_product-price--before--color: var(--sc-mc-color--text-secondary);
|
|
221
212
|
--_product-price--before--font-size: 0.75em;
|
|
222
213
|
--_product-price--font-size: 1.875em;
|
|
223
214
|
--_product-price--gap: 0.375em;
|
|
@@ -236,9 +227,6 @@ const styles = $derived.by(() => {
|
|
|
236
227
|
--_product-price--gap: 0.25rem;
|
|
237
228
|
}
|
|
238
229
|
}
|
|
239
|
-
:global([data-theme="dark"]) .product-price {
|
|
240
|
-
--_product-price--before--color: #d1d5db;
|
|
241
|
-
}
|
|
242
230
|
.product-price__before-price {
|
|
243
231
|
width: 100%;
|
|
244
232
|
color: var(--_product-price--before--color);
|
|
@@ -144,8 +144,8 @@ const adjustTextSize = (node) => {
|
|
|
144
144
|
align-items: center;
|
|
145
145
|
gap: 0.3125em;
|
|
146
146
|
--icon--size: 1.25em;
|
|
147
|
-
--icon--color:
|
|
148
|
-
--icon--filter:
|
|
147
|
+
--icon--color: var(--sc-mc-color--icon-overlay);
|
|
148
|
+
--icon--filter: var(--sc-mc-color--icon-overlay-shadow);
|
|
149
149
|
}
|
|
150
150
|
.short-video-card__info {
|
|
151
151
|
margin-top: clamp(0.4375rem, 3.6cqi, 0.625rem);
|
|
@@ -156,13 +156,13 @@ const adjustTextSize = (node) => {
|
|
|
156
156
|
.short-video-card__meta {
|
|
157
157
|
font-size: clamp(0.625rem, 4.3cqi, 0.75rem);
|
|
158
158
|
font-weight: 500;
|
|
159
|
-
color:
|
|
159
|
+
color: var(--sc-mc-color--text-secondary);
|
|
160
160
|
display: flex;
|
|
161
161
|
align-items: center;
|
|
162
162
|
gap: 0.25rem;
|
|
163
163
|
}
|
|
164
164
|
.short-video-card__text {
|
|
165
|
-
color:
|
|
165
|
+
color: var(--sc-mc-color--text-primary);
|
|
166
166
|
--min-font: 0.75rem;
|
|
167
167
|
--max-font: 0.9375rem;
|
|
168
168
|
--line-height: 1.2;
|
|
@@ -202,7 +202,7 @@ const adjustTextSize = (node) => {
|
|
|
202
202
|
.product-card__info {
|
|
203
203
|
display: flex;
|
|
204
204
|
flex-direction: column;
|
|
205
|
-
color:
|
|
205
|
+
color: var(--sc-mc-color--text-primary);
|
|
206
206
|
font-size: clamp(0.5rem, 2.9cqi, 0.5rem);
|
|
207
207
|
line-height: clamp(0.75rem, 4.3cqi, 0.75rem);
|
|
208
208
|
font-weight: 500;
|
|
@@ -220,6 +220,6 @@ const adjustTextSize = (node) => {
|
|
|
220
220
|
font-weight: 600;
|
|
221
221
|
}
|
|
222
222
|
.product-card__price span:nth-child(2) {
|
|
223
|
-
color:
|
|
223
|
+
color: var(--sc-mc-color--text-secondary);
|
|
224
224
|
text-decoration: line-through;
|
|
225
225
|
}</style>
|
|
@@ -9,7 +9,7 @@ export declare const generateTextStyles: (styles: Partial<TextStreamElementStyle
|
|
|
9
9
|
export declare const generateImageStyles: (styles: Partial<ImageStreamElementStyles> | null) => string;
|
|
10
10
|
export declare const mapFontFamily: (value: StreamElementStyleFontFamily | null | undefined) => string;
|
|
11
11
|
export declare const mapFontWeight: (value: StreamElementStyleFontWeight | null | undefined) => "normal" | "600" | "500";
|
|
12
|
-
export declare const mapTextAlign: (value: StreamElementStyleHorizontalAlign | null | undefined) => "
|
|
12
|
+
export declare const mapTextAlign: (value: StreamElementStyleHorizontalAlign | null | undefined) => "right" | "left" | "center";
|
|
13
13
|
export declare const mapFlexJustifyContent: (value: StreamElementStyleHorizontalAlign | null | undefined) => "center" | "flex-start" | "flex-end";
|
|
14
14
|
export declare const transformFontSizeValue: (value: number | null | undefined) => string;
|
|
15
15
|
export declare const transformNumericValue: (value: number | null | undefined, fallback?: string) => string;
|
|
@@ -58,7 +58,7 @@ let { stream, aspectRatio = 9 / 16, on } = $props();
|
|
|
58
58
|
height: clamp(1.75rem, 20cqi, 2.5rem);
|
|
59
59
|
padding-inline: clamp(0.5rem, 6cqi, 0.75rem);
|
|
60
60
|
background: rgba(0, 0, 0, 0.8);
|
|
61
|
-
color:
|
|
61
|
+
color: var(--sc-mc-color--text-white);
|
|
62
62
|
display: flex;
|
|
63
63
|
flex-direction: column;
|
|
64
64
|
align-content: center;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<script lang="ts">var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { CloseOrchestrator } from '../../ui/player/close-orchestrator';
|
|
11
|
+
import { createShadowRoot } from '../../ui/shadow-dom';
|
|
12
|
+
import { default as StreamsPlayerProxy } from './streams-player-proxy.svelte';
|
|
13
|
+
import { mount, unmount } from 'svelte';
|
|
14
|
+
let { dataProvider, postSocialInteractionsHandler, amplificationParameters, playerSettings, analyticsHandler, on } = $props();
|
|
15
|
+
const initHost = (node) => {
|
|
16
|
+
const shadowRoot = createShadowRoot(node);
|
|
17
|
+
const mounted = mount(StreamsPlayerProxy, {
|
|
18
|
+
target: shadowRoot,
|
|
19
|
+
props: {
|
|
20
|
+
dataProvider,
|
|
21
|
+
postSocialInteractionsHandler,
|
|
22
|
+
analyticsHandler,
|
|
23
|
+
amplificationParameters,
|
|
24
|
+
playerSettings,
|
|
25
|
+
closeOrchestrator: new CloseOrchestrator({
|
|
26
|
+
closeFn: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
yield unmount(mounted);
|
|
28
|
+
}),
|
|
29
|
+
canClose: false
|
|
30
|
+
}),
|
|
31
|
+
on
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
destroy: () => {
|
|
36
|
+
unmount(mounted);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<div class="streams-player-host" use:initHost></div>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Locale } from '../../core/locale';
|
|
2
|
+
import type { IPostSocialInteractionsHandler } from '../../posts';
|
|
3
|
+
import type { IStreamAnalyticsHandler, IStreamsPlayerDataProvider, StreamAmplificationParameters } from './types';
|
|
4
|
+
type Props = {
|
|
5
|
+
dataProvider: IStreamsPlayerDataProvider;
|
|
6
|
+
postSocialInteractionsHandler?: IPostSocialInteractionsHandler;
|
|
7
|
+
analyticsHandler?: IStreamAnalyticsHandler;
|
|
8
|
+
amplificationParameters?: StreamAmplificationParameters;
|
|
9
|
+
playerSettings?: {
|
|
10
|
+
locale?: Locale;
|
|
11
|
+
showStreamsCloudWatermark?: boolean;
|
|
12
|
+
disableBackground?: boolean;
|
|
13
|
+
theme?: 'light' | 'dark';
|
|
14
|
+
};
|
|
15
|
+
on?: {
|
|
16
|
+
streamActivated?: (data: {
|
|
17
|
+
title: string;
|
|
18
|
+
image: string | null;
|
|
19
|
+
}) => void;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
declare const Cmp: import("svelte").Component<Props, {}, "">;
|
|
23
|
+
type Cmp = ReturnType<typeof Cmp>;
|
|
24
|
+
export default Cmp;
|
|
@@ -1,50 +1,30 @@
|
|
|
1
1
|
import type { Locale } from '../../core/locale';
|
|
2
|
-
import { type
|
|
2
|
+
import { type IMediaCenterDataProvider } from '../../media-center/config/types';
|
|
3
3
|
import type { IPostSocialInteractionsHandler } from '../../posts/social-interactions';
|
|
4
4
|
import type { StreamPageViewerModel } from '../stream-page-viewer/types';
|
|
5
5
|
import type { IStreamAnalyticsHandler, IStreamsPlayerDataProvider, StreamAmplificationParameters, StreamPlayerModel } from './types';
|
|
6
6
|
export { type StreamPlayerModel, type StreamPageViewerModel };
|
|
7
|
-
export {
|
|
8
|
-
export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterConfig };
|
|
7
|
+
export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterDataProvider };
|
|
9
8
|
/**
|
|
10
9
|
* Opens the streams player modal.
|
|
11
10
|
*
|
|
12
|
-
* Two overloads (mutually exclusive; enforced by TypeScript):
|
|
13
|
-
* - Provider mode: openStreamsPlayer({ dataProvider, mediaCenterConfig?, analyticsHandler? })
|
|
14
|
-
* - Internal provider mode: openStreamsPlayer({ ids, initiator, graphqlOrigin?, initialId?, mediaPageId? })
|
|
15
|
-
*
|
|
16
11
|
* @param init Configuration options.
|
|
17
12
|
*
|
|
18
|
-
*
|
|
13
|
+
* Required
|
|
19
14
|
* @param {IStreamsPlayerDataProvider} init.dataProvider
|
|
20
15
|
* Provider that supplies the stream data to the player.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
16
|
+
*
|
|
17
|
+
* Optional
|
|
23
18
|
* @param {IStreamAnalyticsHandler} [init.analyticsHandler]
|
|
24
19
|
* Optional analytics handler to capture player/stream analytics events.
|
|
25
|
-
* If omitted in provider mode, analytics is not auto-initialized.
|
|
26
|
-
*
|
|
27
|
-
* Internal provider mode (overload 2)
|
|
28
|
-
* @param {string[]} init.ids
|
|
29
|
-
* List of stream IDs to display.
|
|
30
|
-
* @param {string} init.initiator
|
|
31
|
-
* Initiator identifier (used for tracking/analytics and GraphQL).
|
|
32
|
-
* @param {string} [init.graphqlOrigin]
|
|
33
|
-
* Optional GraphQL origin (base URL). If omitted, the default origin is determined internally.
|
|
34
|
-
* @param {string} [init.initialId]
|
|
35
|
-
* ID of the stream to open first (optional).
|
|
36
|
-
* @param {string} [init.mediaPageId]
|
|
37
|
-
* Optional media page ID used to construct an internal media-center config.
|
|
38
|
-
*
|
|
39
|
-
* Common (optional)
|
|
40
20
|
* @param {IPostSocialInteractionsHandler} [init.postSocialInteractionsHandler]
|
|
41
21
|
* Handler for social interactions (like, share, etc.).
|
|
42
22
|
* @param {StreamAmplificationParameters} [init.amplificationParameters]
|
|
43
23
|
* Optional parameters to configure amplification behavior.
|
|
44
|
-
* @param {
|
|
24
|
+
* @param {StreamsPlayerSettings} [init.playerSettings]
|
|
45
25
|
* Player UI and behavior settings.
|
|
46
26
|
*
|
|
47
|
-
* Fields of
|
|
27
|
+
* Fields of StreamsPlayerSettings:
|
|
48
28
|
* - {boolean} [disableBackground]
|
|
49
29
|
* If true, hides the player's background image.
|
|
50
30
|
* - {boolean} [hideCloseButton]
|
|
@@ -54,6 +34,8 @@ export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterC
|
|
|
54
34
|
* If omitted, the default locale 'en' is used.
|
|
55
35
|
* - {boolean} [showStreamsCloudWatermark]
|
|
56
36
|
* If true, shows the StreamsCloud watermark.
|
|
37
|
+
* - {'light' | 'dark'} [theme]
|
|
38
|
+
* Optional theme for the player UI.
|
|
57
39
|
*
|
|
58
40
|
* Events
|
|
59
41
|
* @param {{ streamActivated?: (data: { title: string; image: string | null }) => void; playerClosed?: () => void }} [init.on]
|
|
@@ -65,63 +47,31 @@ export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterC
|
|
|
65
47
|
*
|
|
66
48
|
* @returns {void}
|
|
67
49
|
*
|
|
68
|
-
* @example
|
|
50
|
+
* @example
|
|
69
51
|
* ```ts
|
|
70
|
-
* import {
|
|
52
|
+
* import { openStreamsPlayer } from '@streamscloud/embeddable/stream-player';
|
|
71
53
|
*
|
|
72
|
-
*
|
|
54
|
+
* openStreamsPlayer({
|
|
73
55
|
* dataProvider: myStreamProvider,
|
|
74
|
-
* mediaCenterConfig: myMediaCenterProvider,
|
|
75
56
|
* analyticsHandler: myAnalyticsHandler,
|
|
57
|
+
* amplificationParameters: {
|
|
58
|
+
* // ...your amplification parameters
|
|
59
|
+
* },
|
|
76
60
|
* playerSettings: {
|
|
77
61
|
* // Locale defaults to 'en'; set 'no' to switch to Norwegian:
|
|
78
62
|
* locale: 'no',
|
|
79
63
|
* disableBackground: false,
|
|
80
64
|
* hideCloseButton: false,
|
|
81
65
|
* showStreamsCloudWatermark: true,
|
|
66
|
+
* theme: 'dark',
|
|
82
67
|
* },
|
|
83
68
|
* on: {
|
|
84
69
|
* streamActivated: ({ title, image }) => console.log('Stream active:', title, image),
|
|
85
|
-
* playerClosed: () => console.log('Player closed')
|
|
86
|
-
* }
|
|
87
|
-
* });
|
|
88
|
-
* ```
|
|
89
|
-
*
|
|
90
|
-
* @example <caption>Internal provider mode</caption>
|
|
91
|
-
* ```ts
|
|
92
|
-
* import { openStreamPlayer } from '@streamscloud/embeddable/stream-player';
|
|
93
|
-
*
|
|
94
|
-
* openStreamsPlayer({
|
|
95
|
-
* ids: ['stream_123'],
|
|
96
|
-
* initiator: 'marketing-campaign',
|
|
97
|
-
* graphqlOrigin: 'https://api.example.com',
|
|
98
|
-
* mediaPageId: 'media-page-123',
|
|
99
|
-
* playerSettings: {
|
|
100
|
-
* locale: 'en',
|
|
101
|
-
* disableBackground: true,
|
|
102
|
-
* hideCloseButton: false,
|
|
103
|
-
* showStreamsCloudWatermark: false,
|
|
70
|
+
* playerClosed: () => console.log('Player closed'),
|
|
104
71
|
* },
|
|
105
|
-
* on: {
|
|
106
|
-
* streamActivated: ({ title, image }) => console.log('Stream active:', title, image),
|
|
107
|
-
* playerClosed: () => console.log('Player closed')
|
|
108
|
-
* }
|
|
109
72
|
* });
|
|
110
73
|
* ```
|
|
111
74
|
*/
|
|
112
|
-
export declare function openStreamsPlayer(init: {
|
|
113
|
-
dataProvider: IStreamsPlayerDataProvider;
|
|
114
|
-
mediaCenterConfig: IMediaCenterConfig;
|
|
115
|
-
amplificationParameters?: StreamAmplificationParameters;
|
|
116
|
-
playerSettings?: StreamsPlayerSettings;
|
|
117
|
-
on?: {
|
|
118
|
-
streamActivated?: (data: {
|
|
119
|
-
title: string;
|
|
120
|
-
image: string | null;
|
|
121
|
-
}) => void;
|
|
122
|
-
playerClosed?: () => void;
|
|
123
|
-
};
|
|
124
|
-
}): void;
|
|
125
75
|
export declare function openStreamsPlayer(init: {
|
|
126
76
|
dataProvider: IStreamsPlayerDataProvider;
|
|
127
77
|
postSocialInteractionsHandler?: IPostSocialInteractionsHandler;
|
|
@@ -136,25 +86,10 @@ export declare function openStreamsPlayer(init: {
|
|
|
136
86
|
playerClosed?: () => void;
|
|
137
87
|
};
|
|
138
88
|
}): void;
|
|
139
|
-
export declare function openStreamsPlayer(init: {
|
|
140
|
-
ids: string[];
|
|
141
|
-
initiator: string;
|
|
142
|
-
graphqlOrigin?: string;
|
|
143
|
-
initialId?: string;
|
|
144
|
-
mediaPageId?: string;
|
|
145
|
-
amplificationParameters?: StreamAmplificationParameters;
|
|
146
|
-
playerSettings?: StreamsPlayerSettings;
|
|
147
|
-
on?: {
|
|
148
|
-
streamActivated?: (data: {
|
|
149
|
-
title: string;
|
|
150
|
-
image: string | null;
|
|
151
|
-
}) => void;
|
|
152
|
-
playerClosed?: () => void;
|
|
153
|
-
};
|
|
154
|
-
}): void;
|
|
155
89
|
export type StreamsPlayerSettings = {
|
|
156
90
|
disableBackground?: boolean;
|
|
157
91
|
locale?: Locale;
|
|
158
92
|
showStreamsCloudWatermark?: boolean;
|
|
159
93
|
hideCloseButton?: boolean;
|
|
94
|
+
theme?: 'light' | 'dark';
|
|
160
95
|
};
|
|
@@ -1,36 +1,80 @@
|
|
|
1
|
-
import { toastrWarning } from '../../core/toastr';
|
|
2
|
-
import { InternalMediaCenterConfig } from '../../media-center/config/internal-media-center-config';
|
|
3
1
|
import {} from '../../media-center/config/types';
|
|
4
|
-
import { MediaCenter } from '../../media-center/media-center';
|
|
5
2
|
import { CloseOrchestrator } from '../../ui/player/close-orchestrator';
|
|
6
3
|
import { ModalShadowHost } from '../../ui/shadow-dom';
|
|
7
|
-
import {
|
|
8
|
-
import { InternalStreamsPlayerDataProvider } from './internal-streams-player-data-provider';
|
|
9
|
-
import { default as StreamsPlayerView } from './streams-player-view.svelte';
|
|
4
|
+
import { default as StreamsPlayerProxy } from './streams-player-proxy.svelte';
|
|
10
5
|
import { mount, unmount } from 'svelte';
|
|
11
6
|
export {};
|
|
12
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Opens the streams player modal.
|
|
9
|
+
*
|
|
10
|
+
* @param init Configuration options.
|
|
11
|
+
*
|
|
12
|
+
* Required
|
|
13
|
+
* @param {IStreamsPlayerDataProvider} init.dataProvider
|
|
14
|
+
* Provider that supplies the stream data to the player.
|
|
15
|
+
*
|
|
16
|
+
* Optional
|
|
17
|
+
* @param {IStreamAnalyticsHandler} [init.analyticsHandler]
|
|
18
|
+
* Optional analytics handler to capture player/stream analytics events.
|
|
19
|
+
* @param {IPostSocialInteractionsHandler} [init.postSocialInteractionsHandler]
|
|
20
|
+
* Handler for social interactions (like, share, etc.).
|
|
21
|
+
* @param {StreamAmplificationParameters} [init.amplificationParameters]
|
|
22
|
+
* Optional parameters to configure amplification behavior.
|
|
23
|
+
* @param {StreamsPlayerSettings} [init.playerSettings]
|
|
24
|
+
* Player UI and behavior settings.
|
|
25
|
+
*
|
|
26
|
+
* Fields of StreamsPlayerSettings:
|
|
27
|
+
* - {boolean} [disableBackground]
|
|
28
|
+
* If true, hides the player's background image.
|
|
29
|
+
* - {boolean} [hideCloseButton]
|
|
30
|
+
* If true, hides the close button.
|
|
31
|
+
* - {Locale} [locale='en']
|
|
32
|
+
* Localization for the player UI. Supported values: 'en' | 'no'.
|
|
33
|
+
* If omitted, the default locale 'en' is used.
|
|
34
|
+
* - {boolean} [showStreamsCloudWatermark]
|
|
35
|
+
* If true, shows the StreamsCloud watermark.
|
|
36
|
+
* - {'light' | 'dark'} [theme]
|
|
37
|
+
* Optional theme for the player UI.
|
|
38
|
+
*
|
|
39
|
+
* Events
|
|
40
|
+
* @param {{ streamActivated?: (data: { title: string; image: string | null }) => void; playerClosed?: () => void }} [init.on]
|
|
41
|
+
* Optional event handlers.
|
|
42
|
+
* @param {(data: { title: string; image: string | null }) => void} [init.on.streamActivated]
|
|
43
|
+
* Called when the stream becomes active. Receives a subset of data with title and image.
|
|
44
|
+
* @param {() => void} [init.on.playerClosed]
|
|
45
|
+
* Called after the player is fully closed (after unmount and removal from the DOM).
|
|
46
|
+
*
|
|
47
|
+
* @returns {void}
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* import { openStreamsPlayer } from '@streamscloud/embeddable/stream-player';
|
|
52
|
+
*
|
|
53
|
+
* openStreamsPlayer({
|
|
54
|
+
* dataProvider: myStreamProvider,
|
|
55
|
+
* analyticsHandler: myAnalyticsHandler,
|
|
56
|
+
* amplificationParameters: {
|
|
57
|
+
* // ...your amplification parameters
|
|
58
|
+
* },
|
|
59
|
+
* playerSettings: {
|
|
60
|
+
* // Locale defaults to 'en'; set 'no' to switch to Norwegian:
|
|
61
|
+
* locale: 'no',
|
|
62
|
+
* disableBackground: false,
|
|
63
|
+
* hideCloseButton: false,
|
|
64
|
+
* showStreamsCloudWatermark: true,
|
|
65
|
+
* theme: 'dark',
|
|
66
|
+
* },
|
|
67
|
+
* on: {
|
|
68
|
+
* streamActivated: ({ title, image }) => console.log('Stream active:', title, image),
|
|
69
|
+
* playerClosed: () => console.log('Player closed'),
|
|
70
|
+
* },
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
13
74
|
export function openStreamsPlayer(init) {
|
|
14
|
-
const {
|
|
15
|
-
let dataProvider = init.dataProvider;
|
|
16
|
-
if (!dataProvider && ids?.length) {
|
|
17
|
-
dataProvider = new InternalStreamsPlayerDataProvider({ ids, initialId, graphqlOrigin, initiator });
|
|
18
|
-
}
|
|
19
|
-
if (!dataProvider) {
|
|
20
|
-
toastrWarning('Data provider is not specified.');
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
let mediaCenterConfig = init.mediaCenterConfig;
|
|
24
|
-
if (!mediaCenterConfig && init.mediaPageId) {
|
|
25
|
-
mediaCenterConfig = new InternalMediaCenterConfig({ mediaPageId: init.mediaPageId, graphqlOrigin, initiator });
|
|
26
|
-
}
|
|
27
|
-
let analyticsHandler = init.analyticsHandler;
|
|
28
|
-
if (!analyticsHandler && !init.dataProvider) {
|
|
29
|
-
// Only create internal analytics handler if using internal data provider
|
|
30
|
-
analyticsHandler = new InternalStreamAnalyticsHandler(graphqlOrigin);
|
|
31
|
-
}
|
|
75
|
+
const { dataProvider, analyticsHandler, postSocialInteractionsHandler, amplificationParameters, playerSettings, on } = init;
|
|
32
76
|
const shadowHost = new ModalShadowHost();
|
|
33
|
-
let mounted;
|
|
77
|
+
let mounted = null;
|
|
34
78
|
const makeCloseOrchestrator = () => new CloseOrchestrator({
|
|
35
79
|
closeFn: async () => {
|
|
36
80
|
await unmount(mounted);
|
|
@@ -41,47 +85,23 @@ export function openStreamsPlayer(init) {
|
|
|
41
85
|
},
|
|
42
86
|
canClose: !playerSettings?.hideCloseButton
|
|
43
87
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
init.on.streamActivated({ title: data.title, image: data.image });
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
closeOrchestrator: makeCloseOrchestrator()
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
mounted = mount(StreamsPlayerView, {
|
|
68
|
-
target: shadowHost.shadowRoot,
|
|
69
|
-
props: {
|
|
70
|
-
dataProvider: { type: 'provider', provider: dataProvider },
|
|
71
|
-
analyticsHandler,
|
|
72
|
-
amplificationParameters,
|
|
73
|
-
playerSettings,
|
|
74
|
-
postSocialInteractionsHandler,
|
|
75
|
-
closeOrchestrator: makeCloseOrchestrator(),
|
|
76
|
-
on: {
|
|
77
|
-
streamActivated: (data) => {
|
|
78
|
-
if (init.on?.streamActivated) {
|
|
79
|
-
init.on.streamActivated({ title: data.title, image: data.image });
|
|
80
|
-
}
|
|
88
|
+
mounted = mount(StreamsPlayerProxy, {
|
|
89
|
+
target: shadowHost.shadowRoot,
|
|
90
|
+
props: {
|
|
91
|
+
dataProvider,
|
|
92
|
+
analyticsHandler,
|
|
93
|
+
amplificationParameters,
|
|
94
|
+
playerSettings,
|
|
95
|
+
postSocialInteractionsHandler,
|
|
96
|
+
closeOrchestrator: makeCloseOrchestrator(),
|
|
97
|
+
on: {
|
|
98
|
+
streamActivated: (data) => {
|
|
99
|
+
if (init.on?.streamActivated) {
|
|
100
|
+
init.on.streamActivated({ title: data.title, image: data.image });
|
|
81
101
|
}
|
|
82
102
|
}
|
|
83
103
|
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
86
106
|
shadowHost.attachToBody();
|
|
87
107
|
}
|
|
@@ -9,7 +9,8 @@ export class StreamsPlayerBuffer extends DefaultChunksPlayerBuffer {
|
|
|
9
9
|
loadMoreChunks: async () => {
|
|
10
10
|
return await provider.loadMoreStreams();
|
|
11
11
|
},
|
|
12
|
-
loadChunkItems: provider.getStreamPages
|
|
12
|
+
loadChunkItems: provider.getStreamPages,
|
|
13
|
+
onEndReached: provider.onEndReached
|
|
13
14
|
});
|
|
14
15
|
}
|
|
15
16
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script lang="ts">import { Theme } from '../../core/theme';
|
|
2
|
+
import {} from '../../ui/player/close-orchestrator';
|
|
3
|
+
import { ShadowRoot } from '../../ui/shadow-dom';
|
|
4
|
+
import { default as StreamsPlayerView } from './streams-player-view.svelte';
|
|
5
|
+
import { untrack } from 'svelte';
|
|
6
|
+
let { dataProvider, postSocialInteractionsHandler, amplificationParameters, closeOrchestrator, playerSettings, analyticsHandler, on } = $props();
|
|
7
|
+
let backgroundImageUrl = $state(null);
|
|
8
|
+
const handleBackgroundImagedLoaded = (url) => {
|
|
9
|
+
backgroundImageUrl = url;
|
|
10
|
+
};
|
|
11
|
+
$effect(() => {
|
|
12
|
+
void (playerSettings === null || playerSettings === void 0 ? void 0 : playerSettings.theme);
|
|
13
|
+
untrack(() => {
|
|
14
|
+
var _a;
|
|
15
|
+
Theme.set((_a = playerSettings === null || playerSettings === void 0 ? void 0 : playerSettings.theme) !== null && _a !== void 0 ? _a : 'dark');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<ShadowRoot backgroundDisabled={playerSettings?.disableBackground === true} backgroundImageUrl={backgroundImageUrl}>
|
|
21
|
+
<StreamsPlayerView
|
|
22
|
+
dataProvider={{ type: 'provider', provider: dataProvider }}
|
|
23
|
+
postSocialInteractionsHandler={postSocialInteractionsHandler}
|
|
24
|
+
analyticsHandler={analyticsHandler}
|
|
25
|
+
amplificationParameters={amplificationParameters}
|
|
26
|
+
playerSettings={playerSettings}
|
|
27
|
+
closeOrchestrator={closeOrchestrator}
|
|
28
|
+
on={{
|
|
29
|
+
streamActivated: on?.streamActivated,
|
|
30
|
+
backgroundImageLoaded: playerSettings?.disableBackground === true ? undefined : handleBackgroundImagedLoaded
|
|
31
|
+
}} />
|
|
32
|
+
</ShadowRoot>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Locale } from '../../core/locale';
|
|
2
|
+
import type { IPostSocialInteractionsHandler } from '../../posts/social-interactions';
|
|
3
|
+
import { type ICloseOrchestrator } from '../../ui/player/close-orchestrator';
|
|
4
|
+
import type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, StreamAmplificationParameters } from './types';
|
|
5
|
+
type Props = {
|
|
6
|
+
dataProvider: IStreamsPlayerDataProvider;
|
|
7
|
+
postSocialInteractionsHandler?: IPostSocialInteractionsHandler;
|
|
8
|
+
analyticsHandler?: IStreamAnalyticsHandler;
|
|
9
|
+
amplificationParameters?: StreamAmplificationParameters;
|
|
10
|
+
closeOrchestrator: ICloseOrchestrator;
|
|
11
|
+
playerSettings?: {
|
|
12
|
+
locale?: Locale;
|
|
13
|
+
showStreamsCloudWatermark?: boolean;
|
|
14
|
+
disableBackground?: boolean;
|
|
15
|
+
theme?: 'light' | 'dark';
|
|
16
|
+
};
|
|
17
|
+
on?: {
|
|
18
|
+
streamActivated?: (data: {
|
|
19
|
+
title: string;
|
|
20
|
+
image: string | null;
|
|
21
|
+
}) => void;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
declare const StreamsPlayerProxy: import("svelte").Component<Props, {}, "">;
|
|
25
|
+
type StreamsPlayerProxy = ReturnType<typeof StreamsPlayerProxy>;
|
|
26
|
+
export default StreamsPlayerProxy;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
};
|
|
10
10
|
var _a;
|
|
11
11
|
import { ContentPlayer, ContentPlayerConfig } from '../../content-player';
|
|
12
|
-
import { ContentPlayerSettings } from '../../content-player/content-player-settings';
|
|
12
|
+
import { ContentPlayerSettings } from '../../content-player/content-player-settings.svelte';
|
|
13
13
|
import { preloadImage } from '../../core/image-preloader';
|
|
14
14
|
import { mapToPostModel } from '../layout/models';
|
|
15
15
|
import { StreamPageViewer } from '../stream-page-viewer';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Locale } from '../../core/locale';
|
|
2
|
+
import type { ThemeValue } from '../../core/theme';
|
|
2
3
|
import type { IPostSocialInteractionsHandler } from '../../posts/social-interactions';
|
|
3
4
|
import type { StreamPageViewerModel } from '../stream-page-viewer';
|
|
4
5
|
import type { ICloseOrchestrator } from '../../ui/player/close-orchestrator';
|
|
@@ -38,7 +39,7 @@ export type StreamsPlayerProps = {
|
|
|
38
39
|
export type StreamsPlayerSettings = {
|
|
39
40
|
locale?: Locale;
|
|
40
41
|
showStreamsCloudWatermark?: boolean;
|
|
41
|
-
playerColors?: PlayerColors
|
|
42
|
+
playerColors?: Record<ThemeValue, PlayerColors>;
|
|
42
43
|
};
|
|
43
44
|
export type StreamAmplificationParameters = {
|
|
44
45
|
campaignId: string;
|
|
@@ -54,6 +55,7 @@ export interface IStreamsPlayerDataProvider {
|
|
|
54
55
|
items: StreamPageViewerModel[];
|
|
55
56
|
continuationToken: string | null;
|
|
56
57
|
}>;
|
|
58
|
+
onEndReached?: () => void;
|
|
57
59
|
}
|
|
58
60
|
export interface IStreamAnalyticsHandler {
|
|
59
61
|
setOrganizationId: (organizationId: string) => void;
|