@streamscloud/embeddable 12.2.0 → 13.0.1
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/content-player/content-player-config.svelte.d.ts +2 -13
- 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/index.d.ts +1 -0
- package/dist/content-player/index.js +1 -0
- package/dist/core/theme/index.d.ts +1 -0
- package/dist/core/theme/theme-store.svelte.d.ts +3 -2
- 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 +1 -1
- 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 +4 -4
- package/dist/media-center/media-center/cmp.media-center-proxy.svelte.d.ts +7 -4
- 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 +7 -56
- 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/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/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 -7
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +18 -25
- 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.svelte +138 -31
- package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte.d.ts +2 -0
- package/dist/media-center/media-center/index.d.ts +1 -0
- package/dist/media-center/media-center/index.js +1 -0
- package/dist/media-center/media-center/media-center-context.svelte.d.ts +15 -9
- package/dist/media-center/media-center/media-center-context.svelte.js +57 -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/media-center-view.svelte +11 -3
- package/dist/media-center/media-center/media-center-view.svelte.d.ts +2 -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 +15 -14
- 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 +22 -9
- 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/types.d.ts +3 -3
- 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 +10 -4
- package/dist/media-page/cmp.media-page.svelte.d.ts +6 -5
- package/dist/media-page/index.d.ts +40 -58
- package/dist/media-page/index.js +129 -16
- package/dist/posts/posts-player/index.d.ts +31 -33
- package/dist/posts/posts-player/index.js +90 -35
- package/dist/posts/posts-player/posts-player-view.svelte +1 -1
- package/dist/posts/posts-player/types.d.ts +2 -1
- package/dist/streams/layout/styles-transformer.d.ts +1 -1
- package/dist/streams/streams-player/index.d.ts +17 -83
- package/dist/streams/streams-player/index.js +84 -64
- package/dist/streams/streams-player/streams-player-buffer.svelte.js +2 -1
- 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 +16 -2
- 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 +14 -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 +6 -4
- package/dist/ui/shadow-dom/colors.scss +6 -4
- 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 -23
- package/dist/media-center/config/internal-media-center-config.d.ts +0 -14
- 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/{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 +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 +0 -0
- /package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte.d.ts +0 -0
|
@@ -1,45 +1,38 @@
|
|
|
1
1
|
import { Theme } from '../../../core/theme';
|
|
2
|
-
import {
|
|
2
|
+
import { PlayerColors } from '../../../ui/player/colors';
|
|
3
3
|
export class MediaCenterSettingsHandler {
|
|
4
4
|
_backgroundImageUrl = $state(null);
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this._contentPlayerSettings.playerColors = this._colorsMap[theme];
|
|
16
|
-
});
|
|
17
|
-
});
|
|
5
|
+
_mediaCenterSettings;
|
|
6
|
+
_dataProvider;
|
|
7
|
+
_contentPlayerSettings = $derived.by(() => ({
|
|
8
|
+
locale: this._mediaCenterSettings.locale,
|
|
9
|
+
playerColors: this._dataProvider.model?.playerColors,
|
|
10
|
+
showStreamsCloudWatermark: this._mediaCenterSettings.showStreamsCloudWatermark
|
|
11
|
+
}));
|
|
12
|
+
constructor(init) {
|
|
13
|
+
this._mediaCenterSettings = init.settings;
|
|
14
|
+
this._dataProvider = init.dataProvider;
|
|
18
15
|
}
|
|
19
16
|
get playerSettings() {
|
|
20
17
|
return this._contentPlayerSettings;
|
|
21
18
|
}
|
|
19
|
+
get actualMediaCenterColors() {
|
|
20
|
+
return this._dataProvider.model?.playerColors?.[Theme.get()] || new PlayerColors(null);
|
|
21
|
+
}
|
|
22
22
|
get locale() {
|
|
23
|
-
return this.
|
|
23
|
+
return this._mediaCenterSettings.locale;
|
|
24
24
|
}
|
|
25
25
|
get backgroundWrapperProps() {
|
|
26
26
|
return {
|
|
27
|
-
backgroundDisabled: this.
|
|
27
|
+
backgroundDisabled: this._mediaCenterSettings.disableBackground,
|
|
28
28
|
backgroundImageUrl: this._backgroundImageUrl,
|
|
29
|
-
backgroundColor: this.
|
|
29
|
+
backgroundColor: this.actualMediaCenterColors.playerBackground
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
get backgroundImageLoadedHandler() {
|
|
33
|
-
return this.
|
|
33
|
+
return this._mediaCenterSettings.disableBackground ? undefined : (url) => this.updateBackgroundImageUrl(url);
|
|
34
34
|
}
|
|
35
35
|
updateBackgroundImageUrl = (url) => {
|
|
36
36
|
this._backgroundImageUrl = url;
|
|
37
37
|
};
|
|
38
|
-
updatePlayerColors = (colors) => {
|
|
39
|
-
this._colorsMap = {
|
|
40
|
-
light: null,
|
|
41
|
-
dark: colors
|
|
42
|
-
};
|
|
43
|
-
this._contentPlayerSettings.playerColors = this._colorsMap[Theme.get()];
|
|
44
|
-
};
|
|
45
38
|
}
|
|
@@ -10,13 +10,18 @@ import IconReOrderDotsHorizontal from '@fluentui/svg-icons/icons/re_order_dots_h
|
|
|
10
10
|
import IconScreenSearch from '@fluentui/svg-icons/icons/screen_search_20_regular.svg?raw';
|
|
11
11
|
import IconSearch from '@fluentui/svg-icons/icons/search_20_regular.svg?raw';
|
|
12
12
|
const SCROLL_MASK_OFFSET = 32;
|
|
13
|
-
|
|
13
|
+
const HEADER_CONTENT_MAX_WIDTH = 1180;
|
|
14
|
+
const HEADER_SIDE_SPACER_MIN_WIDTH = 30;
|
|
15
|
+
let { context, on, dynamicActions } = $props();
|
|
14
16
|
const localization = $derived(new MediaCenterHeaderLocalization(context.locale));
|
|
17
|
+
let headerRef = $state(null);
|
|
15
18
|
let scrollAreaRef = $state(null);
|
|
16
19
|
const headerMounted = (node) => {
|
|
20
|
+
headerRef = node;
|
|
17
21
|
const heightResizeObserver = new ResizeObserver(() => {
|
|
18
22
|
const headerHeight = node.clientHeight;
|
|
19
23
|
on.headerHeightChanged(headerHeight);
|
|
24
|
+
calcHeaderGridProportions();
|
|
20
25
|
});
|
|
21
26
|
heightResizeObserver.observe(node);
|
|
22
27
|
return {
|
|
@@ -26,6 +31,62 @@ const headerMounted = (node) => {
|
|
|
26
31
|
}
|
|
27
32
|
};
|
|
28
33
|
};
|
|
34
|
+
const handleCloseButtonMounted = (_) => {
|
|
35
|
+
calcHeaderGridProportions();
|
|
36
|
+
};
|
|
37
|
+
const handleDynamicActionsMounted = (node) => {
|
|
38
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
39
|
+
calcHeaderGridProportions();
|
|
40
|
+
});
|
|
41
|
+
resizeObserver.observe(node);
|
|
42
|
+
return {
|
|
43
|
+
destroy: () => {
|
|
44
|
+
resizeObserver.disconnect();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
const calcHeaderGridProportions = () => {
|
|
49
|
+
if (!headerRef) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const children = Array.from(headerRef.children);
|
|
53
|
+
if (children.length !== 3) {
|
|
54
|
+
console.warn('Media Center header structure is unexpected. Cannot calculate grid proportions.');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const headerWidth = headerRef.clientWidth;
|
|
58
|
+
const minRequiredSpacerWidth = Math.max(HEADER_SIDE_SPACER_MIN_WIDTH, (headerWidth - HEADER_CONTENT_MAX_WIDTH) / 2);
|
|
59
|
+
const calcSpacerMinWidth = (container) => {
|
|
60
|
+
container.style.width = ``;
|
|
61
|
+
const children = Array.from(container.children);
|
|
62
|
+
const { paddingLeft, paddingRight } = window.getComputedStyle(container);
|
|
63
|
+
const paddingsWidth = parseFloat(paddingLeft) + parseFloat(paddingRight);
|
|
64
|
+
if (children.length === 0) {
|
|
65
|
+
return paddingsWidth;
|
|
66
|
+
}
|
|
67
|
+
const containerRect = container.getBoundingClientRect();
|
|
68
|
+
let minLeft = Infinity;
|
|
69
|
+
let maxRight = -Infinity;
|
|
70
|
+
children.forEach((child) => {
|
|
71
|
+
const rect = child.getBoundingClientRect();
|
|
72
|
+
const relativeLeft = rect.left - containerRect.left;
|
|
73
|
+
const relativeRight = rect.right - containerRect.left;
|
|
74
|
+
minLeft = Math.min(minLeft, relativeLeft);
|
|
75
|
+
maxRight = Math.max(maxRight, relativeRight);
|
|
76
|
+
});
|
|
77
|
+
return maxRight - minLeft + paddingsWidth;
|
|
78
|
+
};
|
|
79
|
+
const leftSpacer = children[0];
|
|
80
|
+
const leftSpacerMinWidth = calcSpacerMinWidth(leftSpacer);
|
|
81
|
+
const adjustedLeftSpacerMinWidth = Math.max(leftSpacerMinWidth, minRequiredSpacerWidth);
|
|
82
|
+
const rightSpacer = children[2];
|
|
83
|
+
const rightSpacerMinWidth = calcSpacerMinWidth(rightSpacer);
|
|
84
|
+
const adjustedRightSpacerMinWidth = Math.max(rightSpacerMinWidth, minRequiredSpacerWidth);
|
|
85
|
+
const content = children[1];
|
|
86
|
+
leftSpacer.style.width = `${adjustedLeftSpacerMinWidth}px`;
|
|
87
|
+
rightSpacer.style.width = `${adjustedRightSpacerMinWidth}px`;
|
|
88
|
+
content.style.width = `${headerWidth - adjustedLeftSpacerMinWidth - adjustedRightSpacerMinWidth}px`;
|
|
89
|
+
};
|
|
29
90
|
const onScrollMounted = (node) => {
|
|
30
91
|
scrollAreaRef = node;
|
|
31
92
|
scrollAreaRef.style.setProperty('--scroll-area--mask-offset', `${SCROLL_MASK_OFFSET}px`);
|
|
@@ -52,23 +113,26 @@ const updateScrollShadows = (scrollArea) => {
|
|
|
52
113
|
scrollArea.classList.toggle('has-both-masks', scrollHasRight && scrollHasLeft);
|
|
53
114
|
};
|
|
54
115
|
const styles = $derived.by(() => {
|
|
55
|
-
var _a, _b;
|
|
56
116
|
const values = [];
|
|
57
|
-
if (
|
|
58
|
-
values.push(`--media-center-header--button-color: ${context.
|
|
117
|
+
if (context.mediaCenterColors.button) {
|
|
118
|
+
values.push(`--media-center-header--button-color: ${context.mediaCenterColors.button}`);
|
|
119
|
+
}
|
|
120
|
+
if (context.mediaCenterColors.buttonInactive) {
|
|
121
|
+
values.push(`--media-center-header--button-color--inactive: ${context.mediaCenterColors.buttonInactive}`);
|
|
59
122
|
}
|
|
60
|
-
if (
|
|
61
|
-
values.push(`--media-center-header--button-
|
|
123
|
+
if (context.mediaCenterColors.brand) {
|
|
124
|
+
values.push(`--media-center-header--button-indicator: ${context.mediaCenterColors.brand}`);
|
|
62
125
|
}
|
|
63
126
|
return values.join(';');
|
|
64
127
|
});
|
|
65
128
|
</script>
|
|
66
129
|
|
|
67
130
|
<div class="media-center-header-container" use:headerMounted>
|
|
131
|
+
<div class="spacer"></div>
|
|
68
132
|
<div class="media-center-header" style={styles}>
|
|
69
|
-
{#if context.
|
|
133
|
+
{#if context.model?.logo}
|
|
70
134
|
<div class="media-center-header__logo-wrap">
|
|
71
|
-
<img src={context.
|
|
135
|
+
<img src={context.model.logo} class="media-center-header__logo" alt={context.model?.name} />
|
|
72
136
|
</div>
|
|
73
137
|
{/if}
|
|
74
138
|
<button type="button" class="control-button control-button--trigger" class:control-button--active={context.menuActive} onclick={context.toggleMenu}>
|
|
@@ -106,11 +170,18 @@ const styles = $derived.by(() => {
|
|
|
106
170
|
{localization.buttons.cart}
|
|
107
171
|
</span>
|
|
108
172
|
</button>
|
|
109
|
-
|
|
173
|
+
{#if context.momentsFeedHandler.hasMoments}
|
|
174
|
+
<button
|
|
175
|
+
type="button"
|
|
176
|
+
class="control-button"
|
|
177
|
+
class:control-button--active={context.momentsFeedHandler.active}
|
|
178
|
+
class:control-button--indicator={context.momentsFeedHandler.hasUnwatchedMoments}
|
|
179
|
+
onclick={() => context.playMoments()}>
|
|
110
180
|
<span class="control-button__value">
|
|
111
181
|
{localization.buttons.moments}
|
|
112
182
|
</span>
|
|
113
|
-
|
|
183
|
+
</button>
|
|
184
|
+
{/if}
|
|
114
185
|
<button type="button" class="control-button" class:control-button--active={false} onclick={() => ({})}>
|
|
115
186
|
<span class="control-button__value">
|
|
116
187
|
{localization.buttons.webpage}
|
|
@@ -138,16 +209,25 @@ const styles = $derived.by(() => {
|
|
|
138
209
|
</div>
|
|
139
210
|
</div>
|
|
140
211
|
</div>
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
<
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
212
|
+
<div class="spacer spacer--right">
|
|
213
|
+
{#if dynamicActions}
|
|
214
|
+
<div class="dynamic-actions" use:handleDynamicActionsMounted>
|
|
215
|
+
<div class="dynamic-actions__content">
|
|
216
|
+
{@render dynamicActions()}
|
|
217
|
+
</div>
|
|
218
|
+
</div>
|
|
219
|
+
{/if}
|
|
220
|
+
{#if context.closeOrchestrator.closeTriggerVisible}
|
|
221
|
+
<div class="close-button" use:handleCloseButtonMounted>
|
|
222
|
+
<PlayerButton
|
|
223
|
+
icon={IconDismiss}
|
|
224
|
+
zoom={0.8}
|
|
225
|
+
activeColor={context.mediaCenterColors.button}
|
|
226
|
+
inactiveColor={context.mediaCenterColors.buttonInactive}
|
|
227
|
+
on={{ click: context.closeOrchestrator.requestClose }} />
|
|
228
|
+
</div>
|
|
229
|
+
{/if}
|
|
230
|
+
</div>
|
|
151
231
|
</div>
|
|
152
232
|
|
|
153
233
|
<style>@keyframes fadeIn {
|
|
@@ -162,24 +242,30 @@ const styles = $derived.by(() => {
|
|
|
162
242
|
}
|
|
163
243
|
}
|
|
164
244
|
.media-center-header-container {
|
|
165
|
-
padding-top: 2.1875rem;
|
|
166
|
-
padding-inline: 4.375rem;
|
|
167
|
-
pointer-events: none;
|
|
168
245
|
z-index: 1;
|
|
169
246
|
display: flex;
|
|
170
|
-
justify-content: center;
|
|
171
247
|
position: relative;
|
|
172
248
|
}
|
|
173
249
|
|
|
250
|
+
.spacer {
|
|
251
|
+
flex: 1 1 auto;
|
|
252
|
+
display: flex;
|
|
253
|
+
padding-inline: 0.9375rem;
|
|
254
|
+
gap: 0.9375rem;
|
|
255
|
+
}
|
|
256
|
+
.spacer--right {
|
|
257
|
+
justify-content: flex-end;
|
|
258
|
+
}
|
|
259
|
+
|
|
174
260
|
.media-center-header {
|
|
175
261
|
--_media-center-header--button-color: var(--media-center-header--button-color, var(--sc-mc-color--button-player));
|
|
176
262
|
--_media-center-header--button-color--inactive: var(
|
|
177
|
-
|
|
178
|
-
|
|
263
|
+
--media-center-header--button-color--inactive,
|
|
264
|
+
rgb(from var(--_media-center-header--button-color, var(--sc-mc-color--button-player)) r g b / 60%)
|
|
179
265
|
);
|
|
266
|
+
--_media-center-header--button-indicator: var(--media-center-header--button-indicator, var(--sc-mc-color--icon-success));
|
|
267
|
+
padding-top: 2.1875rem;
|
|
180
268
|
width: 73.75rem;
|
|
181
|
-
max-width: 100%;
|
|
182
|
-
margin: 0 auto;
|
|
183
269
|
display: flex;
|
|
184
270
|
align-items: center;
|
|
185
271
|
gap: 1.5rem;
|
|
@@ -280,6 +366,17 @@ const styles = $derived.by(() => {
|
|
|
280
366
|
background-color: var(--_media-center-header--button-color);
|
|
281
367
|
color: var(--sc-mc-color--text-white);
|
|
282
368
|
}
|
|
369
|
+
.control-button--indicator::after {
|
|
370
|
+
content: "";
|
|
371
|
+
position: absolute;
|
|
372
|
+
top: 0rem;
|
|
373
|
+
right: 0rem;
|
|
374
|
+
width: 0.875rem;
|
|
375
|
+
height: 0.875rem;
|
|
376
|
+
transform: translate(20%, -20%);
|
|
377
|
+
background-color: var(--_media-center-header--button-indicator);
|
|
378
|
+
border-radius: 50%;
|
|
379
|
+
}
|
|
283
380
|
.control-button:hover:not(.control-button--active) {
|
|
284
381
|
background-color: var(--_media-center-header--button-color);
|
|
285
382
|
}
|
|
@@ -303,9 +400,19 @@ const styles = $derived.by(() => {
|
|
|
303
400
|
min-width: 0;
|
|
304
401
|
}
|
|
305
402
|
|
|
403
|
+
.dynamic-actions {
|
|
404
|
+
display: flex;
|
|
405
|
+
padding-top: 2.1875rem;
|
|
406
|
+
}
|
|
407
|
+
.dynamic-actions__content {
|
|
408
|
+
display: flex;
|
|
409
|
+
justify-content: center;
|
|
410
|
+
}
|
|
411
|
+
|
|
306
412
|
.close-button {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
413
|
+
justify-self: flex-end;
|
|
414
|
+
flex-shrink: 0;
|
|
415
|
+
padding-block: 0.9375rem;
|
|
416
|
+
padding-right: 0.3125rem;
|
|
310
417
|
z-index: 1;
|
|
311
418
|
}</style>
|
package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte.d.ts
RENAMED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { MediaCenterContext } from '../media-center-context.svelte';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
2
3
|
type Props = {
|
|
3
4
|
context: MediaCenterContext;
|
|
4
5
|
on: {
|
|
5
6
|
headerHeightChanged: (height: number) => void;
|
|
6
7
|
};
|
|
8
|
+
dynamicActions?: Snippet;
|
|
7
9
|
};
|
|
8
10
|
declare const MediaCenterHeader: import("svelte").Component<Props, {}, "">;
|
|
9
11
|
type MediaCenterHeader = ReturnType<typeof MediaCenterHeader>;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { IMediaCenterConfig } from '../config/types';
|
|
1
|
+
import type { IMediaCenterDataProvider } from '../config/types';
|
|
3
2
|
import type { ICloseOrchestrator } from '../../ui/player/close-orchestrator';
|
|
4
3
|
import { DiscoverViewHandler } from './discover';
|
|
5
4
|
import { FeedHandler } from './feed';
|
|
6
5
|
import { CategoriesHandler, MediaCenterSettingsHandler } from './handlers';
|
|
6
|
+
import type { MediaCenterSettings } from './media-center-settings.svelte';
|
|
7
7
|
import { PopularStreamsPanelHandler } from './menu';
|
|
8
|
+
import { MomentsFeedHandler } from './moments';
|
|
8
9
|
import { StreamsInCategoryPanelHandler } from './streams-in-category';
|
|
9
|
-
import type { MediaCenterMode
|
|
10
|
+
import type { MediaCenterMode } from './types';
|
|
10
11
|
export declare class MediaCenterContext {
|
|
11
12
|
initializing: boolean;
|
|
12
13
|
initialized: boolean;
|
|
@@ -14,21 +15,21 @@ export declare class MediaCenterContext {
|
|
|
14
15
|
menuActive: boolean;
|
|
15
16
|
categoriesHandler: CategoriesHandler;
|
|
16
17
|
feedHandler: FeedHandler;
|
|
18
|
+
momentsFeedHandler: MomentsFeedHandler;
|
|
17
19
|
discoverHandler: DiscoverViewHandler;
|
|
18
20
|
popularStreamsHandler: PopularStreamsPanelHandler;
|
|
19
21
|
streamsInCategoryHandler: StreamsInCategoryPanelHandler;
|
|
20
|
-
categoryFollowingHandler: IContentCategoryFollowingHandler | null;
|
|
21
22
|
settingsHandler: MediaCenterSettingsHandler;
|
|
22
23
|
closeOrchestrator: ICloseOrchestrator;
|
|
23
|
-
private
|
|
24
|
+
private _dataProvider;
|
|
24
25
|
constructor(data: {
|
|
25
|
-
|
|
26
|
+
dataProvider: IMediaCenterDataProvider;
|
|
26
27
|
closeOrchestrator: ICloseOrchestrator;
|
|
27
|
-
settings
|
|
28
|
+
settings: MediaCenterSettings;
|
|
28
29
|
on: MediaCenterContextInitializationCallbacks;
|
|
29
30
|
});
|
|
30
|
-
get
|
|
31
|
-
get
|
|
31
|
+
get model(): import("../config/types").MediaCenterModel | null;
|
|
32
|
+
get mediaCenterColors(): import("../../ui/player/colors").PlayerColors;
|
|
32
33
|
get loading(): boolean;
|
|
33
34
|
get overlayIsActive(): boolean;
|
|
34
35
|
get backgroundWrapperProps(): {
|
|
@@ -37,6 +38,10 @@ export declare class MediaCenterContext {
|
|
|
37
38
|
backgroundColor?: string | null;
|
|
38
39
|
};
|
|
39
40
|
get feedPlayerProps(): import("./types").PlayerProps | null;
|
|
41
|
+
get momentsPlayerProps(): import("../../posts/posts-player/types").PostsPlayerProps | null;
|
|
42
|
+
get membershipHandler(): import("..").IMediaCenterMembershipHandler | null;
|
|
43
|
+
get navigationHandler(): import("..").IMediaCenterNavigationHandler | null;
|
|
44
|
+
get categoriesFollowingHandler(): import("..").IContentCategoryFollowingHandler | null;
|
|
40
45
|
get locale(): import("../../core/locale").Locale;
|
|
41
46
|
toggleMenu: () => void;
|
|
42
47
|
showMenu: () => void;
|
|
@@ -46,6 +51,7 @@ export declare class MediaCenterContext {
|
|
|
46
51
|
}) => Promise<void>;
|
|
47
52
|
playPostsFeed: (options: Parameters<FeedHandler["activatePostsFeed"]>[0]) => Promise<void>;
|
|
48
53
|
playStreamsFeed: (options: Parameters<FeedHandler["activateStreamsFeed"]>[0]) => Promise<void>;
|
|
54
|
+
playMoments: () => Promise<void>;
|
|
49
55
|
playRootFeed: () => Promise<void>;
|
|
50
56
|
tryActivateStreamsInCategory: (categoryId: string) => Promise<void>;
|
|
51
57
|
private deactivateOtherThanFeed;
|
|
@@ -2,6 +2,7 @@ import { DiscoverViewHandler } from './discover';
|
|
|
2
2
|
import { FeedHandler } from './feed';
|
|
3
3
|
import { CategoriesHandler, MediaCenterSettingsHandler } from './handlers';
|
|
4
4
|
import { PopularStreamsPanelHandler } from './menu';
|
|
5
|
+
import { MomentsFeedHandler } from './moments';
|
|
5
6
|
import { StreamsInCategoryPanelHandler } from './streams-in-category';
|
|
6
7
|
export class MediaCenterContext {
|
|
7
8
|
initializing = $state(true);
|
|
@@ -10,35 +11,50 @@ export class MediaCenterContext {
|
|
|
10
11
|
if (this.discoverHandler.activated) {
|
|
11
12
|
return 'discover';
|
|
12
13
|
}
|
|
14
|
+
if (this.momentsFeedHandler.active) {
|
|
15
|
+
return 'moments';
|
|
16
|
+
}
|
|
13
17
|
return 'feed';
|
|
14
18
|
});
|
|
15
19
|
menuActive = $state(false);
|
|
16
|
-
categoriesHandler
|
|
20
|
+
categoriesHandler;
|
|
17
21
|
feedHandler;
|
|
22
|
+
momentsFeedHandler;
|
|
18
23
|
discoverHandler;
|
|
19
24
|
popularStreamsHandler;
|
|
20
25
|
streamsInCategoryHandler;
|
|
21
|
-
categoryFollowingHandler = $state.raw(null);
|
|
22
26
|
settingsHandler;
|
|
23
27
|
closeOrchestrator;
|
|
24
|
-
|
|
28
|
+
_dataProvider;
|
|
25
29
|
constructor(data) {
|
|
26
|
-
const {
|
|
30
|
+
const { dataProvider, closeOrchestrator, settings, on } = data;
|
|
31
|
+
this._dataProvider = dataProvider;
|
|
27
32
|
this.closeOrchestrator = closeOrchestrator;
|
|
28
33
|
this.closeOrchestrator.setCloseTriggerAttached(true);
|
|
29
|
-
this.settingsHandler = new MediaCenterSettingsHandler(settings);
|
|
30
|
-
this.feedHandler = new FeedHandler({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
this.settingsHandler = new MediaCenterSettingsHandler({ settings, dataProvider });
|
|
35
|
+
this.feedHandler = new FeedHandler({
|
|
36
|
+
dataProvider,
|
|
37
|
+
mediaCenterSettingsHandler: this.settingsHandler,
|
|
38
|
+
closeOrchestrator,
|
|
39
|
+
onPlayerReachedEnd: () => this.activateDiscover({ categoryId: this.categoriesHandler.selectedCategoryId })
|
|
40
|
+
});
|
|
41
|
+
this.categoriesHandler = new CategoriesHandler(dataProvider);
|
|
42
|
+
this.discoverHandler = new DiscoverViewHandler(dataProvider);
|
|
43
|
+
this.popularStreamsHandler = new PopularStreamsPanelHandler(dataProvider);
|
|
44
|
+
this.streamsInCategoryHandler = new StreamsInCategoryPanelHandler(dataProvider);
|
|
45
|
+
this.momentsFeedHandler = new MomentsFeedHandler({
|
|
46
|
+
dataProvider,
|
|
47
|
+
mediaCenterSettingsHandler: this.settingsHandler,
|
|
48
|
+
closeOrchestrator,
|
|
49
|
+
onPlayerReachedEnd: () => this.activateDiscover({ categoryId: this.categoriesHandler.selectedCategoryId })
|
|
50
|
+
});
|
|
51
|
+
this.init(dataProvider, on);
|
|
36
52
|
}
|
|
37
|
-
get
|
|
38
|
-
return this.
|
|
53
|
+
get model() {
|
|
54
|
+
return this._dataProvider.model;
|
|
39
55
|
}
|
|
40
|
-
get
|
|
41
|
-
return this.settingsHandler.
|
|
56
|
+
get mediaCenterColors() {
|
|
57
|
+
return this.settingsHandler.actualMediaCenterColors;
|
|
42
58
|
}
|
|
43
59
|
get loading() {
|
|
44
60
|
return this.discoverHandler.loading || this.streamsInCategoryHandler.loading;
|
|
@@ -52,6 +68,18 @@ export class MediaCenterContext {
|
|
|
52
68
|
get feedPlayerProps() {
|
|
53
69
|
return this.feedHandler.feedPlayerProps;
|
|
54
70
|
}
|
|
71
|
+
get momentsPlayerProps() {
|
|
72
|
+
return this.momentsFeedHandler.momentsPlayerProps;
|
|
73
|
+
}
|
|
74
|
+
get membershipHandler() {
|
|
75
|
+
return this._dataProvider.handlers?.membershipHandler || null;
|
|
76
|
+
}
|
|
77
|
+
get navigationHandler() {
|
|
78
|
+
return this._dataProvider.handlers?.navigationHandler || null;
|
|
79
|
+
}
|
|
80
|
+
get categoriesFollowingHandler() {
|
|
81
|
+
return this._dataProvider.handlers?.categoriesFollowingHandler || null;
|
|
82
|
+
}
|
|
55
83
|
get locale() {
|
|
56
84
|
return this.settingsHandler.locale;
|
|
57
85
|
}
|
|
@@ -74,6 +102,7 @@ export class MediaCenterContext {
|
|
|
74
102
|
this.settingsHandler.updateBackgroundImageUrl('not-applicable');
|
|
75
103
|
this.hideMenu();
|
|
76
104
|
this.feedHandler.deactivate();
|
|
105
|
+
this.momentsFeedHandler.deactivate();
|
|
77
106
|
this.streamsInCategoryHandler.deactivate();
|
|
78
107
|
this.categoriesHandler.selectedCategoryId = options.categoryId;
|
|
79
108
|
const childCategories = this.categoriesHandler.allCategories.filter((c) => c.parentId === this.categoriesHandler.selectedCategoryId);
|
|
@@ -92,6 +121,16 @@ export class MediaCenterContext {
|
|
|
92
121
|
this.categoriesHandler.selectedCategoryId = options.filter?.categoryId ?? null;
|
|
93
122
|
this.feedHandler.activateStreamsFeed(options);
|
|
94
123
|
};
|
|
124
|
+
playMoments = async () => {
|
|
125
|
+
if (!this.momentsFeedHandler.hasMoments) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
this.hideMenu();
|
|
129
|
+
this.feedHandler.deactivate();
|
|
130
|
+
this.discoverHandler.deactivate();
|
|
131
|
+
this.streamsInCategoryHandler.deactivate();
|
|
132
|
+
this.momentsFeedHandler.activateMoments();
|
|
133
|
+
};
|
|
95
134
|
playRootFeed = async () => {
|
|
96
135
|
this.deactivateOtherThanFeed();
|
|
97
136
|
this.categoriesHandler.selectedCategoryId = null;
|
|
@@ -107,24 +146,23 @@ export class MediaCenterContext {
|
|
|
107
146
|
await this.streamsInCategoryHandler.activate(selectedCategoryData);
|
|
108
147
|
this.hideMenu();
|
|
109
148
|
this.feedHandler.deactivate();
|
|
149
|
+
this.momentsFeedHandler.deactivate();
|
|
110
150
|
this.discoverHandler.deactivate();
|
|
111
151
|
this.categoriesHandler.selectedCategoryId = categoryId;
|
|
112
152
|
};
|
|
113
153
|
deactivateOtherThanFeed = () => {
|
|
114
154
|
this.hideMenu();
|
|
155
|
+
this.momentsFeedHandler.deactivate();
|
|
115
156
|
this.discoverHandler.deactivate();
|
|
116
157
|
this.streamsInCategoryHandler.deactivate();
|
|
117
158
|
};
|
|
118
159
|
init = async (config, on) => {
|
|
119
160
|
try {
|
|
120
|
-
const configModel = await config.
|
|
161
|
+
const configModel = await config.fetchModel();
|
|
121
162
|
if (!configModel) {
|
|
122
163
|
on.failed();
|
|
123
164
|
return;
|
|
124
165
|
}
|
|
125
|
-
this.categoriesHandler.init({ categories: configModel.contentCategories, tagAssociations: configModel.categoryTagAssociations });
|
|
126
|
-
this.settingsHandler.updatePlayerColors(configModel.playerColors);
|
|
127
|
-
this._targetData = configModel.targetData;
|
|
128
166
|
on.initialized(this);
|
|
129
167
|
this.initialized = true;
|
|
130
168
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Locale } from '../../core/locale';
|
|
2
|
+
import type { ThemeValue } from '../../core/theme';
|
|
3
|
+
import type { IMediaCenterSettings } from './types';
|
|
4
|
+
export declare class MediaCenterSettings {
|
|
5
|
+
locale: Locale;
|
|
6
|
+
showStreamsCloudWatermark: boolean;
|
|
7
|
+
disableBackground: boolean;
|
|
8
|
+
theme: ThemeValue;
|
|
9
|
+
constructor(init: IMediaCenterSettings | undefined);
|
|
10
|
+
patch: (data: Partial<IMediaCenterSettings> | undefined) => void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class MediaCenterSettings {
|
|
2
|
+
locale = $state('en');
|
|
3
|
+
showStreamsCloudWatermark = $state(true);
|
|
4
|
+
disableBackground = $state(false);
|
|
5
|
+
theme = $state('dark');
|
|
6
|
+
constructor(init) {
|
|
7
|
+
this.patch(init);
|
|
8
|
+
}
|
|
9
|
+
patch = (data) => {
|
|
10
|
+
if (data?.locale !== undefined) {
|
|
11
|
+
this.locale = data.locale;
|
|
12
|
+
}
|
|
13
|
+
if (data?.showStreamsCloudWatermark !== undefined) {
|
|
14
|
+
this.showStreamsCloudWatermark = data.showStreamsCloudWatermark;
|
|
15
|
+
}
|
|
16
|
+
if (data?.disableBackground !== undefined) {
|
|
17
|
+
this.disableBackground = data.disableBackground;
|
|
18
|
+
}
|
|
19
|
+
if (data?.theme !== undefined) {
|
|
20
|
+
this.theme = data.theme;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -12,12 +12,13 @@ import { default as PostsPlayerView } from '../../posts/posts-player/posts-playe
|
|
|
12
12
|
import { default as StreamsPlayerView } from '../../streams/streams-player/streams-player-view.svelte';
|
|
13
13
|
import { Loading } from '../../ui/loading';
|
|
14
14
|
import { DiscoverPanel } from './discover';
|
|
15
|
-
import {
|
|
15
|
+
import { MediaCenterFooter } from './footer';
|
|
16
|
+
import { MediaCenterHeader, MediaCenterHeaderMobile } from './header';
|
|
16
17
|
import { MediaCenterContext } from './media-center-context.svelte';
|
|
17
18
|
import { Menu } from './menu';
|
|
18
19
|
import { StreamsInCategoryPanel } from './streams-in-category';
|
|
19
20
|
import { fade } from 'svelte/transition';
|
|
20
|
-
let { context } = $props();
|
|
21
|
+
let { context, dynamicActions } = $props();
|
|
21
22
|
let headerHeight = $state(0);
|
|
22
23
|
let isMobileView = $state(false);
|
|
23
24
|
const selectCategory = (categoryId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -43,6 +44,9 @@ const selectCategory = (categoryId) => __awaiter(void 0, void 0, void 0, functio
|
|
|
43
44
|
case 'discover':
|
|
44
45
|
context.activateDiscover({ categoryId });
|
|
45
46
|
break;
|
|
47
|
+
case 'moments':
|
|
48
|
+
context.playPostsFeed({ filter: { categoryId } });
|
|
49
|
+
break;
|
|
46
50
|
default:
|
|
47
51
|
Utils.assertUnreachable(context.mediaCenterMode);
|
|
48
52
|
}
|
|
@@ -129,7 +133,7 @@ const swipeToOpen = (node) => {
|
|
|
129
133
|
<div class="media-center" use:onWidthAnchorMounted>
|
|
130
134
|
<div class="media-center__header-and-content">
|
|
131
135
|
{#if !isMobileView}
|
|
132
|
-
<MediaCenterHeader context={context} on={{ headerHeightChanged: onHeaderHeightChanged }} />
|
|
136
|
+
<MediaCenterHeader context={context} dynamicActions={dynamicActions} on={{ headerHeightChanged: onHeaderHeightChanged }} />
|
|
133
137
|
{:else}
|
|
134
138
|
<MediaCenterHeaderMobile context={context} on={{ headerHeightChanged: onHeaderHeightChanged }} />
|
|
135
139
|
{/if}
|
|
@@ -152,6 +156,10 @@ const swipeToOpen = (node) => {
|
|
|
152
156
|
streamSelected: (stream) => activateSelectedStreamPlayer(stream)
|
|
153
157
|
}} />
|
|
154
158
|
</div>
|
|
159
|
+
{:else if context.mediaCenterMode === 'moments' && context.momentsPlayerProps}
|
|
160
|
+
<div class="media-center__content" class:media-center__content--faded={context.overlayIsActive} transition:fade={{ duration: 300 }}>
|
|
161
|
+
<PostsPlayerView {...context.momentsPlayerProps} />
|
|
162
|
+
</div>
|
|
155
163
|
{/if}
|
|
156
164
|
</div>
|
|
157
165
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { MediaCenterContext } from './media-center-context.svelte';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
2
3
|
type Props = {
|
|
3
4
|
context: MediaCenterContext;
|
|
5
|
+
dynamicActions?: Snippet;
|
|
4
6
|
};
|
|
5
7
|
declare const MediaCenterView: import("svelte").Component<Props, {}, "">;
|
|
6
8
|
type MediaCenterView = ReturnType<typeof MediaCenterView>;
|
|
@@ -2,7 +2,7 @@ import type { MediaCenterContext } from '../media-center-context.svelte';
|
|
|
2
2
|
import { type Snippet } from 'svelte';
|
|
3
3
|
type Props = {
|
|
4
4
|
categoryId: string;
|
|
5
|
-
followingHandler?: MediaCenterContext['
|
|
5
|
+
followingHandler?: MediaCenterContext['categoriesFollowingHandler'];
|
|
6
6
|
children: Snippet;
|
|
7
7
|
invertedOrientation?: boolean;
|
|
8
8
|
};
|