@streamscloud/embeddable 15.0.0-rc.0 → 15.0.0-rc.2
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/external-api/data-providers/internal-media-center-analytics-handler.js +5 -5
- package/dist/external-api/data-providers/internal-post-analytics-handler.js +2 -2
- package/dist/external-api/data-providers/internal-stream-analytics-handler.js +5 -5
- package/dist/external-api/media-page/index.js +1 -1
- package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +1 -1
- package/dist/media-center/media-center/discover/discover-view.svelte +11 -33
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +12 -5
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +17 -5
- package/dist/media-center/media-center/header/media-center-header-mobile.svelte +4 -2
- package/dist/media-center/media-center/header/media-center-header.svelte +4 -2
- package/dist/media-center/media-center/media-center-settings.svelte.js +2 -2
- package/dist/media-center/media-center/media-center-view.svelte +7 -3
- package/dist/media-center/media-center/menu/menu.svelte +4 -6
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -6
- package/dist/posts/post-viewer/attachments-horizontal.svelte +15 -6
- package/dist/posts/post-viewer/cmp.post-viewer.svelte +4 -1
- package/dist/posts/post-viewer/cmp.post-viewer.svelte.d.ts +2 -0
- package/dist/posts/post-viewer/heading.svelte +6 -4
- package/dist/posts/post-viewer/media/post-media.svelte +5 -1
- package/dist/posts/post-viewer/post-texts.svelte +4 -2
- package/dist/streams/layout/cmp.layout.svelte +4 -1
- package/dist/streams/layout/cmp.layout.svelte.d.ts +1 -0
- package/dist/streams/layout/element-views/cmp.stock-stream-element.svelte +3 -2
- package/dist/streams/layout/element-views/price-element-view.svelte +5 -5
- package/dist/streams/layout/styles-transformer.d.ts +2 -1
- package/dist/streams/layout/styles-transformer.js +15 -9
- package/dist/streams/layout/styles.d.ts +1 -0
- package/dist/streams/stream-page-viewer/cmp.stream-page-viewer.svelte +2 -2
- package/dist/streams/stream-page-viewer/cmp.stream-page-viewer.svelte.d.ts +2 -0
- package/dist/streams/streams-player/streams-player-view.svelte +163 -46
- package/dist/streams/streams-player/types.d.ts +1 -0
- package/dist/ui/button/resources/button-theme.svelte +2 -4
- package/dist/ui/icon/cmp.icon.svelte +1 -1
- package/dist/ui/player/button/cmp.player-button.svelte +1 -3
- package/dist/ui/player/button/cmp.player-buttons-group.svelte +1 -3
- package/dist/ui/player/player/cmp.player.svelte.d.ts +6 -15
- package/dist/ui/player/player/controls-and-attachments.svelte.d.ts +6 -15
- package/dist/ui/player/player/overview-panel.svelte +1 -3
- package/dist/ui/player/player/overview-panel.svelte.d.ts +5 -14
- package/dist/ui/player/progress/cmp.chunks-progress.svelte +60 -0
- package/dist/ui/player/progress/cmp.chunks-progress.svelte.d.ts +9 -0
- package/dist/ui/player/progress/index.d.ts +1 -0
- package/dist/ui/player/progress/index.js +1 -0
- package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.js +2 -2
- package/dist/ui/player/slider/cmp.player-slider.svelte.d.ts +5 -14
- package/dist/ui/player/slider-horizontal/cmp.slider.svelte +2 -6
- package/dist/ui/player/slider-horizontal/cmp.slider.svelte.d.ts +5 -12
- package/dist/ui/shadow-dom/cmp.shadow-root.svelte +2 -2
- package/package.json +2 -2
|
@@ -36,7 +36,7 @@ export class InternalMediaCenterAnalyticsHandler {
|
|
|
36
36
|
eventType: EventType.Viewed,
|
|
37
37
|
relatedEntities: [
|
|
38
38
|
{
|
|
39
|
-
relationType: EntityRelationType.
|
|
39
|
+
relationType: EntityRelationType.NestedIn,
|
|
40
40
|
entity: {
|
|
41
41
|
type: EntityType.Stream,
|
|
42
42
|
id: streamId
|
|
@@ -68,7 +68,7 @@ export class InternalMediaCenterAnalyticsHandler {
|
|
|
68
68
|
eventType: EventType.Appeared,
|
|
69
69
|
relatedEntities: [
|
|
70
70
|
{
|
|
71
|
-
relationType: EntityRelationType.
|
|
71
|
+
relationType: EntityRelationType.NestedIn,
|
|
72
72
|
entity: {
|
|
73
73
|
type: EntityType.Stream,
|
|
74
74
|
id: streamId
|
|
@@ -84,7 +84,7 @@ export class InternalMediaCenterAnalyticsHandler {
|
|
|
84
84
|
eventType: EventType.Clicked,
|
|
85
85
|
relatedEntities: [
|
|
86
86
|
{
|
|
87
|
-
relationType: EntityRelationType.
|
|
87
|
+
relationType: EntityRelationType.NestedIn,
|
|
88
88
|
entity: {
|
|
89
89
|
type: EntityType.Stream,
|
|
90
90
|
id: streamId
|
|
@@ -117,7 +117,7 @@ export class InternalMediaCenterAnalyticsHandler {
|
|
|
117
117
|
eventType: EventType.Appeared,
|
|
118
118
|
relatedEntities: [
|
|
119
119
|
{
|
|
120
|
-
relationType: EntityRelationType.
|
|
120
|
+
relationType: EntityRelationType.NestedIn,
|
|
121
121
|
entity: {
|
|
122
122
|
type: EntityType.ShortVideo,
|
|
123
123
|
id: videoId
|
|
@@ -133,7 +133,7 @@ export class InternalMediaCenterAnalyticsHandler {
|
|
|
133
133
|
eventType: EventType.Clicked,
|
|
134
134
|
relatedEntities: [
|
|
135
135
|
{
|
|
136
|
-
relationType: EntityRelationType.
|
|
136
|
+
relationType: EntityRelationType.NestedIn,
|
|
137
137
|
entity: {
|
|
138
138
|
type: EntityType.ShortVideo,
|
|
139
139
|
id: videoId
|
|
@@ -36,7 +36,7 @@ export class InternalPostAnalyticsHandler {
|
|
|
36
36
|
eventType: EventType.Appeared,
|
|
37
37
|
relatedEntities: [
|
|
38
38
|
{
|
|
39
|
-
relationType: EntityRelationType.
|
|
39
|
+
relationType: EntityRelationType.NestedIn,
|
|
40
40
|
entity: {
|
|
41
41
|
type: EntityType.ShortVideo,
|
|
42
42
|
id: videoId
|
|
@@ -52,7 +52,7 @@ export class InternalPostAnalyticsHandler {
|
|
|
52
52
|
eventType: EventType.Clicked,
|
|
53
53
|
relatedEntities: [
|
|
54
54
|
{
|
|
55
|
-
relationType: EntityRelationType.
|
|
55
|
+
relationType: EntityRelationType.NestedIn,
|
|
56
56
|
entity: {
|
|
57
57
|
type: EntityType.ShortVideo,
|
|
58
58
|
id: videoId
|
|
@@ -28,7 +28,7 @@ export class InternalStreamAnalyticsHandler {
|
|
|
28
28
|
eventType: EventType.Viewed,
|
|
29
29
|
relatedEntities: [
|
|
30
30
|
{
|
|
31
|
-
relationType: EntityRelationType.
|
|
31
|
+
relationType: EntityRelationType.NestedIn,
|
|
32
32
|
entity: {
|
|
33
33
|
type: EntityType.Stream,
|
|
34
34
|
id: streamId
|
|
@@ -60,7 +60,7 @@ export class InternalStreamAnalyticsHandler {
|
|
|
60
60
|
eventType: EventType.Appeared,
|
|
61
61
|
relatedEntities: [
|
|
62
62
|
{
|
|
63
|
-
relationType: EntityRelationType.
|
|
63
|
+
relationType: EntityRelationType.NestedIn,
|
|
64
64
|
entity: {
|
|
65
65
|
type: EntityType.Stream,
|
|
66
66
|
id: streamId
|
|
@@ -76,7 +76,7 @@ export class InternalStreamAnalyticsHandler {
|
|
|
76
76
|
eventType: EventType.Clicked,
|
|
77
77
|
relatedEntities: [
|
|
78
78
|
{
|
|
79
|
-
relationType: EntityRelationType.
|
|
79
|
+
relationType: EntityRelationType.NestedIn,
|
|
80
80
|
entity: {
|
|
81
81
|
type: EntityType.Stream,
|
|
82
82
|
id: streamId
|
|
@@ -109,7 +109,7 @@ export class InternalStreamAnalyticsHandler {
|
|
|
109
109
|
eventType: EventType.Appeared,
|
|
110
110
|
relatedEntities: [
|
|
111
111
|
{
|
|
112
|
-
relationType: EntityRelationType.
|
|
112
|
+
relationType: EntityRelationType.NestedIn,
|
|
113
113
|
entity: {
|
|
114
114
|
type: EntityType.ShortVideo,
|
|
115
115
|
id: videoId
|
|
@@ -125,7 +125,7 @@ export class InternalStreamAnalyticsHandler {
|
|
|
125
125
|
eventType: EventType.Clicked,
|
|
126
126
|
relatedEntities: [
|
|
127
127
|
{
|
|
128
|
-
relationType: EntityRelationType.
|
|
128
|
+
relationType: EntityRelationType.NestedIn,
|
|
129
129
|
entity: {
|
|
130
130
|
type: EntityType.ShortVideo,
|
|
131
131
|
id: videoId
|
|
@@ -74,7 +74,7 @@ export function openMediaPageModal(init) {
|
|
|
74
74
|
viewerSettings: {
|
|
75
75
|
hideCloseButton: viewerSettings?.hideCloseButton,
|
|
76
76
|
locale: viewerSettings?.locale,
|
|
77
|
-
showStreamsCloudWatermark:
|
|
77
|
+
showStreamsCloudWatermark: viewerSettings?.showStreamsCloudWatermark,
|
|
78
78
|
theme: viewerSettings?.theme
|
|
79
79
|
},
|
|
80
80
|
on
|
|
@@ -146,6 +146,7 @@ const genereateStreamActions = (id) => {
|
|
|
146
146
|
overflow-y: auto;
|
|
147
147
|
--_cross-browser-scrollbar--thumb-color: transparent;
|
|
148
148
|
--_cross-browser-scrollbar--track-color: transparent;
|
|
149
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
149
150
|
}
|
|
150
151
|
.media-center-discover:hover {
|
|
151
152
|
--_cross-browser-scrollbar--thumb-color: var(--scrollbar--thumb-color, #7d7d7d);
|
|
@@ -169,9 +170,6 @@ const genereateStreamActions = (id) => {
|
|
|
169
170
|
scrollbar-width: thin;
|
|
170
171
|
}
|
|
171
172
|
}
|
|
172
|
-
.media-center-discover {
|
|
173
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
174
|
-
}
|
|
175
173
|
@container (width < 576px) {
|
|
176
174
|
.media-center-discover {
|
|
177
175
|
padding-inline: 0.9375rem;
|
|
@@ -183,23 +181,19 @@ const genereateStreamActions = (id) => {
|
|
|
183
181
|
margin: 0 auto;
|
|
184
182
|
padding-bottom: 1.25rem;
|
|
185
183
|
/* Set 'container-type: inline-size;' to reference container*/
|
|
184
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
185
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
186
186
|
}
|
|
187
187
|
@container (width < 992px) {
|
|
188
188
|
.media-center-discover__content {
|
|
189
189
|
padding-bottom: 1rem;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
.media-center-discover__content {
|
|
193
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
194
|
-
}
|
|
195
192
|
@container (width < 768px) {
|
|
196
193
|
.media-center-discover__content {
|
|
197
194
|
padding-bottom: 0.8125rem;
|
|
198
195
|
}
|
|
199
196
|
}
|
|
200
|
-
.media-center-discover__content {
|
|
201
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
202
|
-
}
|
|
203
197
|
@container (width < 576px) {
|
|
204
198
|
.media-center-discover__content {
|
|
205
199
|
padding-bottom: 0.625rem;
|
|
@@ -210,23 +204,19 @@ const genereateStreamActions = (id) => {
|
|
|
210
204
|
flex-direction: column;
|
|
211
205
|
gap: 3rem;
|
|
212
206
|
/* Set 'container-type: inline-size;' to reference container*/
|
|
207
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
208
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
213
209
|
}
|
|
214
210
|
@container (width < 992px) {
|
|
215
211
|
.media-center-discover__feed {
|
|
216
212
|
gap: 2.5rem;
|
|
217
213
|
}
|
|
218
214
|
}
|
|
219
|
-
.media-center-discover__feed {
|
|
220
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
221
|
-
}
|
|
222
215
|
@container (width < 768px) {
|
|
223
216
|
.media-center-discover__feed {
|
|
224
217
|
gap: 2rem;
|
|
225
218
|
}
|
|
226
219
|
}
|
|
227
|
-
.media-center-discover__feed {
|
|
228
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
229
|
-
}
|
|
230
220
|
@container (width < 576px) {
|
|
231
221
|
.media-center-discover__feed {
|
|
232
222
|
gap: 1.5rem;
|
|
@@ -263,13 +253,13 @@ const genereateStreamActions = (id) => {
|
|
|
263
253
|
.media-center-discover__section-content--4 {
|
|
264
254
|
gap: 1.25rem;
|
|
265
255
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
256
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
257
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
258
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
266
259
|
}
|
|
267
260
|
.media-center-discover__section-content--4 :global(> :nth-child(n + 5)) {
|
|
268
261
|
display: var(--_section-content--more-items--display);
|
|
269
262
|
}
|
|
270
|
-
.media-center-discover__section-content--4 {
|
|
271
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
272
|
-
}
|
|
273
263
|
@container (width < 992px) {
|
|
274
264
|
.media-center-discover__section-content--4 {
|
|
275
265
|
gap: 1rem;
|
|
@@ -279,9 +269,6 @@ const genereateStreamActions = (id) => {
|
|
|
279
269
|
display: var(--_section-content--more-items--display);
|
|
280
270
|
}
|
|
281
271
|
}
|
|
282
|
-
.media-center-discover__section-content--4 {
|
|
283
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
284
|
-
}
|
|
285
272
|
@container (width < 768px) {
|
|
286
273
|
.media-center-discover__section-content--4 {
|
|
287
274
|
gap: 0.75rem;
|
|
@@ -294,9 +281,6 @@ const genereateStreamActions = (id) => {
|
|
|
294
281
|
display: var(--_section-content--more-items--display);
|
|
295
282
|
}
|
|
296
283
|
}
|
|
297
|
-
.media-center-discover__section-content--4 {
|
|
298
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
299
|
-
}
|
|
300
284
|
@container (width < 576px) {
|
|
301
285
|
.media-center-discover__section-content--4 {
|
|
302
286
|
gap: 0.625rem;
|
|
@@ -305,13 +289,13 @@ const genereateStreamActions = (id) => {
|
|
|
305
289
|
.media-center-discover__section-content--5 {
|
|
306
290
|
gap: 1.875rem;
|
|
307
291
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
292
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
293
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
294
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
308
295
|
}
|
|
309
296
|
.media-center-discover__section-content--5 :global(> :nth-child(n + 6)) {
|
|
310
297
|
display: var(--_section-content--more-items--display);
|
|
311
298
|
}
|
|
312
|
-
.media-center-discover__section-content--5 {
|
|
313
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
314
|
-
}
|
|
315
299
|
@container (width < 992px) {
|
|
316
300
|
.media-center-discover__section-content--5 {
|
|
317
301
|
gap: 1.5rem;
|
|
@@ -321,9 +305,6 @@ const genereateStreamActions = (id) => {
|
|
|
321
305
|
display: var(--_section-content--more-items--display);
|
|
322
306
|
}
|
|
323
307
|
}
|
|
324
|
-
.media-center-discover__section-content--5 {
|
|
325
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
326
|
-
}
|
|
327
308
|
@container (width < 768px) {
|
|
328
309
|
.media-center-discover__section-content--5 {
|
|
329
310
|
gap: 1.125rem;
|
|
@@ -333,9 +314,6 @@ const genereateStreamActions = (id) => {
|
|
|
333
314
|
display: var(--_section-content--more-items--display);
|
|
334
315
|
}
|
|
335
316
|
}
|
|
336
|
-
.media-center-discover__section-content--5 {
|
|
337
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
338
|
-
}
|
|
339
317
|
@container (width < 576px) {
|
|
340
318
|
.media-center-discover__section-content--5 {
|
|
341
319
|
gap: 0.9375rem;
|
|
@@ -12,11 +12,7 @@ export declare class MediaCenterSettingsHandler {
|
|
|
12
12
|
readonly dataProvider: IMediaCenterDataProvider;
|
|
13
13
|
settings: MediaCenterSettings;
|
|
14
14
|
});
|
|
15
|
-
get playerSettings():
|
|
16
|
-
locale?: Locale;
|
|
17
|
-
showStreamsCloudWatermark?: boolean;
|
|
18
|
-
playerColors?: Record<ThemeValue, PlayerColors>;
|
|
19
|
-
};
|
|
15
|
+
get playerSettings(): ContentPlayerSettingsLocal;
|
|
20
16
|
get actualMediaCenterColors(): PlayerColors;
|
|
21
17
|
get locale(): Locale;
|
|
22
18
|
get backgroundWrapperProps(): {
|
|
@@ -25,8 +21,19 @@ export declare class MediaCenterSettingsHandler {
|
|
|
25
21
|
backgroundColor?: string | null;
|
|
26
22
|
};
|
|
27
23
|
get backgroundImageLoadedHandler(): ((url: string | null) => void) | undefined;
|
|
24
|
+
setMinOverlayOffsetTop: (value: number) => void;
|
|
28
25
|
updateBackgroundImageUrl: (url: string | null | "not-applicable") => void;
|
|
29
26
|
}
|
|
30
27
|
export type MediaCenterSettingsWithColors = MediaCenterSettings & {
|
|
31
28
|
playerColors?: PlayerColors;
|
|
32
29
|
};
|
|
30
|
+
declare class ContentPlayerSettingsLocal {
|
|
31
|
+
private settings;
|
|
32
|
+
private dataProvider;
|
|
33
|
+
locale?: Locale;
|
|
34
|
+
showStreamsCloudWatermark?: boolean;
|
|
35
|
+
playerColors?: Record<ThemeValue, PlayerColors>;
|
|
36
|
+
overlayMinOffsetTop?: number;
|
|
37
|
+
constructor(settings: MediaCenterSettings, dataProvider: IMediaCenterDataProvider);
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -4,14 +4,11 @@ export class MediaCenterSettingsHandler {
|
|
|
4
4
|
_backgroundImageUrl = $state(null);
|
|
5
5
|
_mediaCenterSettings;
|
|
6
6
|
_dataProvider;
|
|
7
|
-
_contentPlayerSettings
|
|
8
|
-
locale: this._mediaCenterSettings.locale,
|
|
9
|
-
playerColors: this._dataProvider.model?.playerColors,
|
|
10
|
-
showStreamsCloudWatermark: this._mediaCenterSettings.showStreamsCloudWatermark
|
|
11
|
-
}));
|
|
7
|
+
_contentPlayerSettings;
|
|
12
8
|
constructor(init) {
|
|
13
9
|
this._mediaCenterSettings = init.settings;
|
|
14
10
|
this._dataProvider = init.dataProvider;
|
|
11
|
+
this._contentPlayerSettings = new ContentPlayerSettingsLocal(this._mediaCenterSettings, this._dataProvider);
|
|
15
12
|
}
|
|
16
13
|
get playerSettings() {
|
|
17
14
|
return this._contentPlayerSettings;
|
|
@@ -32,7 +29,22 @@ export class MediaCenterSettingsHandler {
|
|
|
32
29
|
get backgroundImageLoadedHandler() {
|
|
33
30
|
return this._mediaCenterSettings.disableBackground ? undefined : (url) => this.updateBackgroundImageUrl(url);
|
|
34
31
|
}
|
|
32
|
+
setMinOverlayOffsetTop = (value) => {
|
|
33
|
+
this._contentPlayerSettings.overlayMinOffsetTop = value;
|
|
34
|
+
};
|
|
35
35
|
updateBackgroundImageUrl = (url) => {
|
|
36
36
|
this._backgroundImageUrl = url;
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
+
class ContentPlayerSettingsLocal {
|
|
40
|
+
settings;
|
|
41
|
+
dataProvider;
|
|
42
|
+
locale = $derived.by(() => this.settings.locale);
|
|
43
|
+
showStreamsCloudWatermark = $derived.by(() => this.settings.showStreamsCloudWatermark);
|
|
44
|
+
playerColors = $derived.by(() => this.dataProvider.model?.playerColors);
|
|
45
|
+
overlayMinOffsetTop = $state(0);
|
|
46
|
+
constructor(settings, dataProvider) {
|
|
47
|
+
this.settings = settings;
|
|
48
|
+
this.dataProvider = dataProvider;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -6,13 +6,15 @@ let { context, locale = 'en', on } = $props();
|
|
|
6
6
|
const localization = $derived(new MediaCenterHeaderLocalization(locale));
|
|
7
7
|
const headerMounted = (node) => {
|
|
8
8
|
const heightResizeObserver = new ResizeObserver(() => {
|
|
9
|
+
var _a;
|
|
9
10
|
const headerHeight = node.clientHeight;
|
|
10
|
-
on.headerHeightChanged(headerHeight);
|
|
11
|
+
(_a = on === null || on === void 0 ? void 0 : on.headerHeightChanged) === null || _a === void 0 ? void 0 : _a.call(on, headerHeight);
|
|
11
12
|
});
|
|
12
13
|
heightResizeObserver.observe(node);
|
|
13
14
|
return {
|
|
14
15
|
destroy: () => {
|
|
15
|
-
|
|
16
|
+
var _a;
|
|
17
|
+
(_a = on === null || on === void 0 ? void 0 : on.headerHeightChanged) === null || _a === void 0 ? void 0 : _a.call(on, 0);
|
|
16
18
|
heightResizeObserver.disconnect();
|
|
17
19
|
}
|
|
18
20
|
};
|
|
@@ -19,14 +19,16 @@ let scrollAreaRef = $state(null);
|
|
|
19
19
|
const headerMounted = (node) => {
|
|
20
20
|
headerRef = node;
|
|
21
21
|
const heightResizeObserver = new ResizeObserver(() => {
|
|
22
|
+
var _a;
|
|
22
23
|
const headerHeight = node.clientHeight;
|
|
23
|
-
on.headerHeightChanged(headerHeight);
|
|
24
|
+
(_a = on === null || on === void 0 ? void 0 : on.headerHeightChanged) === null || _a === void 0 ? void 0 : _a.call(on, headerHeight);
|
|
24
25
|
calcHeaderGridProportions();
|
|
25
26
|
});
|
|
26
27
|
heightResizeObserver.observe(node);
|
|
27
28
|
return {
|
|
28
29
|
destroy: () => {
|
|
29
|
-
|
|
30
|
+
var _a;
|
|
31
|
+
(_a = on === null || on === void 0 ? void 0 : on.headerHeightChanged) === null || _a === void 0 ? void 0 : _a.call(on, 0);
|
|
30
32
|
heightResizeObserver.disconnect();
|
|
31
33
|
}
|
|
32
34
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export class MediaCenterSettings {
|
|
2
2
|
locale = $state('en');
|
|
3
|
-
showStreamsCloudWatermark = $state(
|
|
3
|
+
showStreamsCloudWatermark = $state(false);
|
|
4
4
|
disableBackground = $state(false);
|
|
5
5
|
theme = $state('dark');
|
|
6
6
|
state = $state.raw(null);
|
|
@@ -9,7 +9,7 @@ export class MediaCenterSettings {
|
|
|
9
9
|
}
|
|
10
10
|
update = (data) => {
|
|
11
11
|
this.locale = data?.locale ?? 'en';
|
|
12
|
-
this.showStreamsCloudWatermark = data?.showStreamsCloudWatermark ??
|
|
12
|
+
this.showStreamsCloudWatermark = data?.showStreamsCloudWatermark ?? false;
|
|
13
13
|
this.disableBackground = data?.disableBackground ?? false;
|
|
14
14
|
this.theme = data?.theme ?? 'dark';
|
|
15
15
|
this.state = data?.state ?? null;
|
|
@@ -69,9 +69,13 @@ const activateSelectedStreamPlayer = (stream, categoryId) => {
|
|
|
69
69
|
const activateSelectedStreamOfCategoryPlayer = (id, prefetchedStreams, categoryId) => {
|
|
70
70
|
context.playStreamsFeed({ filter: { categoryId }, init: { prefetchedStreams, initialStreamId: id } });
|
|
71
71
|
};
|
|
72
|
-
const
|
|
72
|
+
const onDesktopHeaderHeightChanged = (height) => {
|
|
73
73
|
headerHeight = height;
|
|
74
74
|
};
|
|
75
|
+
const onMobileHeaderHeightChanged = (height) => {
|
|
76
|
+
headerHeight = height;
|
|
77
|
+
context.settingsHandler.setMinOverlayOffsetTop(height);
|
|
78
|
+
};
|
|
75
79
|
const onWidthAnchorMounted = (node) => {
|
|
76
80
|
const resizeObserver = new ResizeObserver(() => {
|
|
77
81
|
isMobileView = node.clientWidth <= 576;
|
|
@@ -142,9 +146,9 @@ const swipeToOpen = (node) => {
|
|
|
142
146
|
<div class="media-center" use:onWidthAnchorMounted>
|
|
143
147
|
<div class="media-center__header-and-content">
|
|
144
148
|
{#if !isMobileView}
|
|
145
|
-
<MediaCenterHeader context={context} dynamicActions={dynamicActions} on={{ headerHeightChanged:
|
|
149
|
+
<MediaCenterHeader context={context} dynamicActions={dynamicActions} on={{ headerHeightChanged: onDesktopHeaderHeightChanged }} />
|
|
146
150
|
{:else}
|
|
147
|
-
<MediaCenterHeaderMobile context={context} on={{ headerHeightChanged:
|
|
151
|
+
<MediaCenterHeaderMobile context={context} on={{ headerHeightChanged: onMobileHeaderHeightChanged }} />
|
|
148
152
|
{/if}
|
|
149
153
|
|
|
150
154
|
<div class="media-center__content-container" use:swipeToOpen>
|
|
@@ -241,16 +241,14 @@ const styles = $derived.by(() => {
|
|
|
241
241
|
display: flex;
|
|
242
242
|
-webkit-user-drag: none;
|
|
243
243
|
user-select: none;
|
|
244
|
-
}
|
|
245
|
-
.menu-item :global([contenteditable]) {
|
|
246
|
-
user-select: text;
|
|
247
|
-
}
|
|
248
|
-
.menu-item {
|
|
249
244
|
height: 2.25rem;
|
|
250
245
|
padding-left: var(--_media-center-menu--items--padding-inline);
|
|
251
246
|
--_menu-item--text--font-size: 0.9375rem;
|
|
252
247
|
--_menu-item--image--size: 1.5rem;
|
|
253
248
|
}
|
|
249
|
+
.menu-item :global([contenteditable]) {
|
|
250
|
+
user-select: text;
|
|
251
|
+
}
|
|
254
252
|
.menu-item--active {
|
|
255
253
|
background-color: hsl(from var(--_media-center-menu--background-color) h s calc(l + 5)/alpha);
|
|
256
254
|
border-radius: 0.25rem;
|
|
@@ -293,7 +291,7 @@ const styles = $derived.by(() => {
|
|
|
293
291
|
}
|
|
294
292
|
.menu-item__text:hover, .menu-item__text--active {
|
|
295
293
|
font-weight: 600;
|
|
296
|
-
letter-spacing: -0.
|
|
294
|
+
letter-spacing: -0.2px;
|
|
297
295
|
}
|
|
298
296
|
.menu-item__tag {
|
|
299
297
|
height: min-content;
|
|
@@ -80,23 +80,19 @@ let { handler, on } = $props();
|
|
|
80
80
|
gap: 2rem 1.25rem;
|
|
81
81
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
82
82
|
/* Set 'container-type: inline-size;' to reference container*/
|
|
83
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
84
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
83
85
|
}
|
|
84
86
|
@container (width < 992px) {
|
|
85
87
|
.streams-in-category__section-content {
|
|
86
88
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
|
-
.streams-in-category__section-content {
|
|
90
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
91
|
-
}
|
|
92
91
|
@container (width < 768px) {
|
|
93
92
|
.streams-in-category__section-content {
|
|
94
93
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
95
94
|
}
|
|
96
95
|
}
|
|
97
|
-
.streams-in-category__section-content {
|
|
98
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
99
|
-
}
|
|
100
96
|
@container (width < 576px) {
|
|
101
97
|
.streams-in-category__section-content {
|
|
102
98
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
@@ -109,14 +109,13 @@ const variables = $derived.by(() => {
|
|
|
109
109
|
<div
|
|
110
110
|
class="attachments-horizontal__item"
|
|
111
111
|
class:attachments-horizontal__item--single={attachmentsToShow.length === 1}
|
|
112
|
-
data-theme={attachment.isAd ? 'default' : 'dark'}
|
|
113
112
|
onclick={() => handleAttachmentClick(attachment)}
|
|
114
113
|
onkeydown={() => {}}
|
|
115
114
|
role="none"
|
|
116
115
|
bind:this={attachmentElements[attachment.productId ? `product-${attachment.productId}` : `ad-${attachment.adId}`]}
|
|
117
116
|
data-product-id={attachment.productId || undefined}
|
|
118
117
|
data-ad-id={attachment.adId || undefined}>
|
|
119
|
-
<div class="attachments-card" class:attachments-card--single={attachmentsToShow.length === 1}>
|
|
118
|
+
<div class="attachments-card" class:attachments-card--single={attachmentsToShow.length === 1} class:attachments-card--dark={!attachment.isAd}>
|
|
120
119
|
<div class="attachments-card__thumb">
|
|
121
120
|
<ImageRounded src={attachment.image} alt="" noBorders={true} />
|
|
122
121
|
</div>
|
|
@@ -187,17 +186,27 @@ const variables = $derived.by(() => {
|
|
|
187
186
|
}
|
|
188
187
|
|
|
189
188
|
.attachments-card {
|
|
189
|
+
--_attachments-card--background-color: #ffffff;
|
|
190
|
+
--_attachments-card--border-color: #f2f2f2;
|
|
191
|
+
--_attachments-card--text--color: #000000;
|
|
192
|
+
--_attachments-card--text--secondary--color: #6b7280;
|
|
190
193
|
display: grid;
|
|
191
194
|
grid-template-columns: 2.375rem 1fr;
|
|
192
195
|
grid-column-gap: 0.75rem;
|
|
193
196
|
align-items: center;
|
|
194
197
|
width: 15.625rem;
|
|
195
198
|
padding: 0.375rem;
|
|
196
|
-
background-color: rgb(from var(--
|
|
197
|
-
color: var(--
|
|
198
|
-
border: 0.0625rem solid var(--
|
|
199
|
+
background-color: rgb(from var(--_attachments-card--background-color) r g b/90%);
|
|
200
|
+
color: var(--_attachments-card--text--color);
|
|
201
|
+
border: 0.0625rem solid var(--_attachments-card--border-color);
|
|
199
202
|
border-radius: 0.25rem;
|
|
200
203
|
}
|
|
204
|
+
.attachments-card--dark {
|
|
205
|
+
--_attachments-card--background-color: #000000;
|
|
206
|
+
--_attachments-card--border-color: #000000;
|
|
207
|
+
--_attachments-card--text--color: #ffffff;
|
|
208
|
+
--_attachments-card--text--secondary--color: #d1d5db;
|
|
209
|
+
}
|
|
201
210
|
.attachments-card--single {
|
|
202
211
|
width: 100%;
|
|
203
212
|
}
|
|
@@ -222,7 +231,7 @@ const variables = $derived.by(() => {
|
|
|
222
231
|
}
|
|
223
232
|
.attachments-card__extra-info {
|
|
224
233
|
font-size: 0.625rem;
|
|
225
|
-
color: var(--
|
|
234
|
+
color: var(--_attachments-card--text--secondary--color);
|
|
226
235
|
white-space: nowrap;
|
|
227
236
|
overflow: hidden;
|
|
228
237
|
text-overflow: ellipsis;
|
|
@@ -7,7 +7,7 @@ import { default as PostMedia } from './media/post-media.svelte';
|
|
|
7
7
|
import { default as Texts } from './post-texts.svelte';
|
|
8
8
|
import { PostViewerLocalization } from './post-viewer-localization';
|
|
9
9
|
import { PostViewerUiManager } from './ui-manager.svelte';
|
|
10
|
-
let { model, trackingParams: externalTrackingParams, controlsColors = null, enableAttachments = true, controlActions, enableControls = true, autoplay = 'on-appearance', locale = 'en', on } = $props();
|
|
10
|
+
let { model, trackingParams: externalTrackingParams, controlsColors = null, enableAttachments = true, controlActions, enableControls = true, autoplay = 'on-appearance', locale = 'en', on, overlay } = $props();
|
|
11
11
|
const localization = $derived(new PostViewerLocalization(locale));
|
|
12
12
|
const uiManager = new PostViewerUiManager();
|
|
13
13
|
$effect(() => {
|
|
@@ -88,6 +88,9 @@ const variables = $derived.by(() => {
|
|
|
88
88
|
scaleEffect={true} />
|
|
89
89
|
</div>
|
|
90
90
|
{/if}
|
|
91
|
+
{#if overlay}
|
|
92
|
+
{@render overlay()}
|
|
93
|
+
{/if}
|
|
91
94
|
</div>
|
|
92
95
|
|
|
93
96
|
<style>@keyframes fadeIn {
|
|
@@ -2,6 +2,7 @@ import type { Locale } from '../../core/locale';
|
|
|
2
2
|
import type { TrackingParams } from '../../marketing-tracking';
|
|
3
3
|
import { PostModel } from '../model';
|
|
4
4
|
import { type PlayerButtonDef } from '../../ui/player/button';
|
|
5
|
+
import type { Snippet } from 'svelte';
|
|
5
6
|
type Props = {
|
|
6
7
|
model: PostModel;
|
|
7
8
|
trackingParams: TrackingParams | null;
|
|
@@ -21,6 +22,7 @@ type Props = {
|
|
|
21
22
|
adClick?: (adId: string) => void;
|
|
22
23
|
adImpression?: (adId: string) => void;
|
|
23
24
|
};
|
|
25
|
+
overlay?: Snippet;
|
|
24
26
|
};
|
|
25
27
|
declare const Cmp: import("svelte").Component<Props, {}, "">;
|
|
26
28
|
type Cmp = ReturnType<typeof Cmp>;
|
|
@@ -41,6 +41,8 @@ const variables = $derived.by(() => {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
.post-viewer-heading {
|
|
44
|
+
--_post-viewer-heading-texts--color: #ffffff;
|
|
45
|
+
--_post-viewer-heading--text--shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 6px rgba(0, 0, 0, 0.05);
|
|
44
46
|
display: flex;
|
|
45
47
|
align-items: center;
|
|
46
48
|
padding: var(--_post-viewer--heading--padding);
|
|
@@ -67,8 +69,8 @@ const variables = $derived.by(() => {
|
|
|
67
69
|
font-size: 0.75rem;
|
|
68
70
|
line-height: 0.9375rem;
|
|
69
71
|
font-weight: 500;
|
|
70
|
-
color: var(--
|
|
71
|
-
text-shadow: var(--
|
|
72
|
+
color: var(--_post-viewer-heading-texts--color);
|
|
73
|
+
text-shadow: var(--_post-viewer-heading--text--shadow);
|
|
72
74
|
text-overflow: ellipsis;
|
|
73
75
|
width: 100%;
|
|
74
76
|
white-space: nowrap;
|
|
@@ -79,6 +81,6 @@ const variables = $derived.by(() => {
|
|
|
79
81
|
font-size: 0.625rem;
|
|
80
82
|
line-height: 0.75rem;
|
|
81
83
|
font-weight: 400;
|
|
82
|
-
color: var(--
|
|
83
|
-
text-shadow: var(--
|
|
84
|
+
color: var(--_post-viewer-heading-texts--color);
|
|
85
|
+
text-shadow: var(--_post-viewer-heading--text--shadow);
|
|
84
86
|
}</style>
|
|
@@ -46,13 +46,17 @@ let { id, media, locale, autoplay = 'on-appearance', on } = $props();
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
.post-media {
|
|
49
|
+
--_post-media--background-color: #ffffff;
|
|
49
50
|
width: 100%;
|
|
50
51
|
min-width: 100%;
|
|
51
52
|
max-width: 100%;
|
|
52
53
|
height: 100%;
|
|
53
54
|
min-height: 100%;
|
|
54
55
|
max-height: 100%;
|
|
55
|
-
background-color: rgb(from var(--
|
|
56
|
+
background-color: rgb(from var(--_post-media--background-color) r g b/60%);
|
|
57
|
+
}
|
|
58
|
+
:global([data-theme="dark"]) .post-media {
|
|
59
|
+
--_post-media--background-color: #000000;
|
|
56
60
|
}
|
|
57
61
|
.post-media--fit {
|
|
58
62
|
--video--media-fit: contain;
|
|
@@ -45,8 +45,10 @@ const variables = $derived.by(() => {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
.post-viewer-texts {
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
--_post-viewer-texts--color: #ffffff;
|
|
49
|
+
--_post-viewer-texts--shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 6px rgba(0, 0, 0, 0.05);
|
|
50
|
+
color: var(--_post-viewer-texts--color);
|
|
51
|
+
text-shadow: var(--_post-viewer-texts--shadow);
|
|
50
52
|
padding: var(--_post-viewer-texts--padding);
|
|
51
53
|
display: flex;
|
|
52
54
|
flex-direction: column;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">import { ProportionalContainer } from '../../ui/proportional-container';
|
|
2
2
|
import { generateStreamLayoutStyles } from './styles-transformer';
|
|
3
|
-
let { model, children, controls } = $props();
|
|
3
|
+
let { model, children, controls, overlay } = $props();
|
|
4
4
|
</script>
|
|
5
5
|
|
|
6
6
|
<ProportionalContainer ratio={9 / 16}>
|
|
@@ -9,6 +9,9 @@ let { model, children, controls } = $props();
|
|
|
9
9
|
{#if controls}
|
|
10
10
|
{@render controls()}
|
|
11
11
|
{/if}
|
|
12
|
+
{#if overlay}
|
|
13
|
+
{@render overlay()}
|
|
14
|
+
{/if}
|
|
12
15
|
</div>
|
|
13
16
|
</ProportionalContainer>
|
|
14
17
|
|