@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
|
@@ -0,0 +1,171 @@
|
|
|
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 { compactNumber } from '../../../core/utils/compact-number';
|
|
11
|
+
import { OptionsButton, ButtonSize, ButtonStyle, Button } from '../../../ui/button';
|
|
12
|
+
import { CommunityFeaturesLocalization } from './community-features-localization';
|
|
13
|
+
let { target, membershipHandler, locale } = $props();
|
|
14
|
+
const localization = $derived(new CommunityFeaturesLocalization(locale));
|
|
15
|
+
let uiState = $state('idle');
|
|
16
|
+
let isJoinedStore = $state.raw({ isJoined: false });
|
|
17
|
+
$effect(() => {
|
|
18
|
+
if (!membershipHandler) {
|
|
19
|
+
isJoinedStore = { isJoined: false };
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
updateIsJoinedStore(membershipHandler);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const updateIsJoinedStore = (membershipHandler) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
uiState = 'loading';
|
|
27
|
+
try {
|
|
28
|
+
isJoinedStore = yield membershipHandler.getIsJoined();
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
uiState = 'idle';
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
const onLeaveMembershipClick = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
if (!membershipHandler) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
uiState = 'submitting';
|
|
39
|
+
try {
|
|
40
|
+
yield membershipHandler.leave();
|
|
41
|
+
yield updateIsJoinedStore(membershipHandler);
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
uiState = 'idle';
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
const onJoinMembershipClick = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
|
+
if (!membershipHandler) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
uiState = 'submitting';
|
|
52
|
+
try {
|
|
53
|
+
yield membershipHandler.join();
|
|
54
|
+
yield updateIsJoinedStore(membershipHandler);
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
uiState = 'idle';
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
</script>
|
|
61
|
+
|
|
62
|
+
{#if target.communityFeatures && (target.communityFeatures.membersCount > 0 || membershipHandler)}
|
|
63
|
+
<div class="community-features">
|
|
64
|
+
<button
|
|
65
|
+
type="button"
|
|
66
|
+
class="members"
|
|
67
|
+
disabled={!membershipHandler || target.communityFeatures.membersCount === 0}
|
|
68
|
+
onclick={() => membershipHandler?.viewMembersList()}>
|
|
69
|
+
<span class="members__count">
|
|
70
|
+
{compactNumber(target.communityFeatures.membersCount, { locale })}
|
|
71
|
+
</span>
|
|
72
|
+
<span class="members__label">
|
|
73
|
+
{localization.membersLabel(target.communityFeatures.membersCount)}
|
|
74
|
+
</span>
|
|
75
|
+
</button>
|
|
76
|
+
{#if membershipHandler && uiState !== 'loading'}
|
|
77
|
+
<div class="actions">
|
|
78
|
+
{#if isJoinedStore.isJoined}
|
|
79
|
+
<OptionsButton size={ButtonSize.Small} style={ButtonStyle.Standard} optionsPosition="bottom-end" disabled={uiState === 'submitting'}>
|
|
80
|
+
{localization.memberButtonLabel}
|
|
81
|
+
{#snippet rightOptions()}
|
|
82
|
+
<div class="leave-actions">
|
|
83
|
+
<button type="button" class="leave-actions__button" onclick={onLeaveMembershipClick}>
|
|
84
|
+
{localization.leaveButtonLabel}
|
|
85
|
+
</button>
|
|
86
|
+
</div>
|
|
87
|
+
{/snippet}
|
|
88
|
+
</OptionsButton>
|
|
89
|
+
{:else}
|
|
90
|
+
<Button size={ButtonSize.Small} style={ButtonStyle.Standard} on={{ click: onJoinMembershipClick }} disabled={uiState === 'submitting'}>
|
|
91
|
+
{localization.joinButtonLabel}
|
|
92
|
+
</Button>
|
|
93
|
+
{/if}
|
|
94
|
+
</div>
|
|
95
|
+
{/if}
|
|
96
|
+
</div>
|
|
97
|
+
{/if}
|
|
98
|
+
|
|
99
|
+
<style>@keyframes fadeIn {
|
|
100
|
+
0% {
|
|
101
|
+
opacity: 1;
|
|
102
|
+
}
|
|
103
|
+
50% {
|
|
104
|
+
opacity: 0.4;
|
|
105
|
+
}
|
|
106
|
+
100% {
|
|
107
|
+
opacity: 1;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
.community-features {
|
|
111
|
+
display: flex;
|
|
112
|
+
flex-wrap: nowrap;
|
|
113
|
+
margin-top: 0.625rem;
|
|
114
|
+
gap: 8.125rem;
|
|
115
|
+
align-items: center;
|
|
116
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
117
|
+
}
|
|
118
|
+
@container (width < 576px) {
|
|
119
|
+
.community-features {
|
|
120
|
+
margin-top: 0.125rem;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.members {
|
|
125
|
+
display: flex;
|
|
126
|
+
align-items: center;
|
|
127
|
+
gap: 0.625rem;
|
|
128
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
129
|
+
}
|
|
130
|
+
@container (width < 576px) {
|
|
131
|
+
.members {
|
|
132
|
+
align-items: flex-end;
|
|
133
|
+
gap: 0.25rem;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
.members__count {
|
|
137
|
+
font-size: 0.9375rem;
|
|
138
|
+
line-height: 1;
|
|
139
|
+
font-weight: 500;
|
|
140
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
141
|
+
}
|
|
142
|
+
@container (width < 576px) {
|
|
143
|
+
.members__count {
|
|
144
|
+
font-weight: 600;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
.members__label {
|
|
148
|
+
font-size: 0.75rem;
|
|
149
|
+
line-height: 1;
|
|
150
|
+
font-weight: 400;
|
|
151
|
+
color: var(--sc-mc-color--text-secondary);
|
|
152
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
153
|
+
}
|
|
154
|
+
@container (width < 576px) {
|
|
155
|
+
.members__label {
|
|
156
|
+
font-weight: 600;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.actions {
|
|
161
|
+
--button--min-width: 7.5rem;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.leave-actions {
|
|
165
|
+
background: var(--sc-mc-color--bg-button);
|
|
166
|
+
border-radius: 0.25rem;
|
|
167
|
+
}
|
|
168
|
+
.leave-actions__button {
|
|
169
|
+
padding: 0.3125rem 0.9375rem;
|
|
170
|
+
font-size: 0.75rem;
|
|
171
|
+
}</style>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Locale } from '../../../core/locale';
|
|
2
|
+
import type { MediaCenterModel } from '../../config/types';
|
|
3
|
+
import type { IMediaCenterMembershipHandler } from '../../membership';
|
|
4
|
+
type Props = {
|
|
5
|
+
target: MediaCenterModel;
|
|
6
|
+
membershipHandler: IMediaCenterMembershipHandler | null;
|
|
7
|
+
locale: Locale;
|
|
8
|
+
};
|
|
9
|
+
declare const CommunityFeatures: import("svelte").Component<Props, {}, "">;
|
|
10
|
+
type CommunityFeatures = ReturnType<typeof CommunityFeatures>;
|
|
11
|
+
export default CommunityFeatures;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IMediaCenterDataProvider } from '../../config/types';
|
|
2
2
|
import { StreamsInCategory, ShortVideosInCategory } from './types.svelte';
|
|
3
3
|
export declare class DiscoverDataLoader {
|
|
4
|
-
private readonly
|
|
5
|
-
constructor(
|
|
4
|
+
private readonly dataProvider;
|
|
5
|
+
constructor(dataProvider: IMediaCenterDataProvider);
|
|
6
6
|
loadStreams: (holder: StreamsInCategory) => Promise<void>;
|
|
7
7
|
loadShortVideos: (holder: ShortVideosInCategory) => Promise<void>;
|
|
8
8
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { PostType } from '../../..';
|
|
2
2
|
import { StreamsInCategory, ShortVideosInCategory } from './types.svelte';
|
|
3
3
|
export class DiscoverDataLoader {
|
|
4
|
-
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
4
|
+
dataProvider;
|
|
5
|
+
constructor(dataProvider) {
|
|
6
|
+
this.dataProvider = dataProvider;
|
|
7
7
|
}
|
|
8
8
|
loadStreams = async (holder) => {
|
|
9
9
|
if (holder.continuationToken === null) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
|
-
const streamsResponse = await this.
|
|
12
|
+
const streamsResponse = await this.dataProvider.streamPlayer.getStreamsCursor({
|
|
13
13
|
filter: { categoryId: holder.categoryId ?? undefined },
|
|
14
14
|
limit: 6,
|
|
15
15
|
continuationToken: holder.continuationToken
|
|
@@ -21,7 +21,7 @@ export class DiscoverDataLoader {
|
|
|
21
21
|
if (holder.continuationToken === null) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
const shortVideosResponse = await this.
|
|
24
|
+
const shortVideosResponse = await this.dataProvider.postsPlayer.getPostsCursor({
|
|
25
25
|
filter: {
|
|
26
26
|
categoryId: holder.categoryId,
|
|
27
27
|
types: [PostType.ShortVideo]
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
<script lang="ts">import {
|
|
2
|
-
import { ImageRounded } from '../../../ui/image';
|
|
1
|
+
<script lang="ts">import { ImageRounded } from '../../../ui/image';
|
|
3
2
|
import { LineClamp } from '../../../ui/line-clamp';
|
|
4
3
|
import { ProportionalContainer } from '../../../ui/proportional-container';
|
|
5
|
-
import {
|
|
4
|
+
import { default as CommunityFeatures } from './community-features.svelte';
|
|
6
5
|
import { MomentsCircle } from '../moments';
|
|
7
6
|
let { context } = $props();
|
|
8
|
-
const localization = $derived(new DiscoverHeaderLocalization(context.locale));
|
|
9
7
|
</script>
|
|
10
8
|
|
|
11
|
-
{#if context.
|
|
12
|
-
{@const target = context.
|
|
9
|
+
{#if context.model}
|
|
10
|
+
{@const target = context.model}
|
|
13
11
|
<div class="header">
|
|
14
12
|
<div class="header__avatar">
|
|
15
13
|
<MomentsCircle context={context} />
|
|
@@ -17,14 +15,7 @@ const localization = $derived(new DiscoverHeaderLocalization(context.locale));
|
|
|
17
15
|
<div class="header__info">
|
|
18
16
|
<p class="header__name">{target.name}</p>
|
|
19
17
|
<p class="header__handle">@{target.handle}</p>
|
|
20
|
-
<
|
|
21
|
-
<span class="header__members-count">
|
|
22
|
-
{compactNumber(target.membersCount, { locale: context.locale })}
|
|
23
|
-
</span>
|
|
24
|
-
<span class="header__members-label">
|
|
25
|
-
{localization.membersLabel(target.membersCount)}
|
|
26
|
-
</span>
|
|
27
|
-
</div>
|
|
18
|
+
<CommunityFeatures target={target} membershipHandler={context.membershipHandler} locale={context.locale} />
|
|
28
19
|
|
|
29
20
|
{#if target.description}
|
|
30
21
|
<p class="header__description">
|
|
@@ -48,14 +39,7 @@ const localization = $derived(new DiscoverHeaderLocalization(context.locale));
|
|
|
48
39
|
</div>
|
|
49
40
|
<div class="header-mobile__texts">
|
|
50
41
|
<p class="header-mobile__name">{target.name}</p>
|
|
51
|
-
<
|
|
52
|
-
<span class="header-mobile__members-count">
|
|
53
|
-
{compactNumber(target.membersCount, { locale: localization.locale })}
|
|
54
|
-
</span>
|
|
55
|
-
<span class="header-mobile__members-label">
|
|
56
|
-
{localization.membersLabel(target.membersCount)}
|
|
57
|
-
</span>
|
|
58
|
-
</div>
|
|
42
|
+
<CommunityFeatures target={target} membershipHandler={context.membershipHandler} locale={context.locale} />
|
|
59
43
|
</div>
|
|
60
44
|
</div>
|
|
61
45
|
{#if target.description}
|
|
@@ -111,28 +95,11 @@ const localization = $derived(new DiscoverHeaderLocalization(context.locale));
|
|
|
111
95
|
font-weight: 400;
|
|
112
96
|
color: var(--sc-mc-color--text-brand);
|
|
113
97
|
}
|
|
114
|
-
.header__members {
|
|
115
|
-
margin-top: 0.625rem;
|
|
116
|
-
display: flex;
|
|
117
|
-
align-items: center;
|
|
118
|
-
gap: 0.625rem;
|
|
119
|
-
}
|
|
120
|
-
.header__members-count {
|
|
121
|
-
font-size: 0.9375rem;
|
|
122
|
-
line-height: 1;
|
|
123
|
-
font-weight: 500;
|
|
124
|
-
}
|
|
125
|
-
.header__members-label {
|
|
126
|
-
font-size: 0.75rem;
|
|
127
|
-
line-height: 1;
|
|
128
|
-
font-weight: 400;
|
|
129
|
-
color: var(--sc-mc-color--text-secondary);
|
|
130
|
-
}
|
|
131
98
|
.header__description {
|
|
132
99
|
margin-top: 0.875rem;
|
|
133
100
|
font-size: 0.9375rem;
|
|
134
101
|
max-width: 37.5rem;
|
|
135
|
-
--line-clamp--line-clamp:
|
|
102
|
+
--line-clamp--line-clamp: 5;
|
|
136
103
|
}
|
|
137
104
|
.header__side-banner-container {
|
|
138
105
|
width: 29.375rem;
|
|
@@ -188,22 +155,6 @@ const localization = $derived(new DiscoverHeaderLocalization(context.locale));
|
|
|
188
155
|
letter-spacing: -0.0103125rem;
|
|
189
156
|
}
|
|
190
157
|
}
|
|
191
|
-
.header-mobile__members {
|
|
192
|
-
display: flex;
|
|
193
|
-
align-items: flex-end;
|
|
194
|
-
gap: 0.25rem;
|
|
195
|
-
}
|
|
196
|
-
.header-mobile__members-count {
|
|
197
|
-
font-size: 0.9375rem;
|
|
198
|
-
line-height: 1;
|
|
199
|
-
font-weight: 600;
|
|
200
|
-
}
|
|
201
|
-
.header-mobile__members-label {
|
|
202
|
-
font-size: 0.75rem;
|
|
203
|
-
line-height: 1;
|
|
204
|
-
font-weight: 600;
|
|
205
|
-
color: var(--sc-mc-color--text-secondary);
|
|
206
|
-
}
|
|
207
158
|
.header-mobile__description {
|
|
208
159
|
font-size: 1rem;
|
|
209
160
|
font-weight: 500;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IMediaCenterDataProvider } from '../../config/types';
|
|
2
2
|
import { ShortVideosInCategory, StreamsInCategory } from './types.svelte';
|
|
3
3
|
export declare class DiscoverViewHandler {
|
|
4
|
-
private readonly
|
|
4
|
+
private readonly dataProvider;
|
|
5
5
|
private _activated;
|
|
6
6
|
private _state;
|
|
7
7
|
private _streamsInCategoryCache;
|
|
@@ -10,7 +10,7 @@ export declare class DiscoverViewHandler {
|
|
|
10
10
|
private _shortVideosInCategory;
|
|
11
11
|
private _dataLoader;
|
|
12
12
|
private _shortVideosLoadingDeferred;
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(dataProvider: IMediaCenterDataProvider);
|
|
14
14
|
get activated(): boolean;
|
|
15
15
|
get active(): boolean;
|
|
16
16
|
get loading(): boolean;
|
|
@@ -2,7 +2,7 @@ import { Deferred } from '../../../core/deferred';
|
|
|
2
2
|
import { DiscoverDataLoader } from './data-loading';
|
|
3
3
|
import { ShortVideosInCategory, StreamsInCategory } from './types.svelte';
|
|
4
4
|
export class DiscoverViewHandler {
|
|
5
|
-
|
|
5
|
+
dataProvider;
|
|
6
6
|
_activated = $state(false);
|
|
7
7
|
_state = $state('loading');
|
|
8
8
|
_streamsInCategoryCache = $state.raw([]);
|
|
@@ -11,9 +11,9 @@ export class DiscoverViewHandler {
|
|
|
11
11
|
_shortVideosInCategory = $state.raw([]);
|
|
12
12
|
_dataLoader;
|
|
13
13
|
_shortVideosLoadingDeferred = null;
|
|
14
|
-
constructor(
|
|
15
|
-
this.
|
|
16
|
-
this._dataLoader = new DiscoverDataLoader(this.
|
|
14
|
+
constructor(dataProvider) {
|
|
15
|
+
this.dataProvider = dataProvider;
|
|
16
|
+
this._dataLoader = new DiscoverDataLoader(this.dataProvider);
|
|
17
17
|
}
|
|
18
18
|
get activated() {
|
|
19
19
|
return this._activated;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IMediaCenterDataProvider } from '../..';
|
|
2
2
|
import type { PostPlayerModel } from '../../../posts/posts-player';
|
|
3
3
|
import type { IStreamsPlayerDataProvider } from '../../../streams/streams-player';
|
|
4
4
|
import type { ICloseOrchestrator } from '../../../ui/player/close-orchestrator';
|
|
@@ -10,13 +10,15 @@ export declare class FeedHandler {
|
|
|
10
10
|
private _active;
|
|
11
11
|
private _providersGenerator;
|
|
12
12
|
private _feedPlayerProps;
|
|
13
|
-
private
|
|
13
|
+
private _dataProvider;
|
|
14
14
|
private _mediaCenterSettingsHandler;
|
|
15
15
|
private _closeOrchestrator;
|
|
16
|
+
private _onPlayerReachedEnd;
|
|
16
17
|
constructor(data: {
|
|
17
|
-
|
|
18
|
+
dataProvider: IMediaCenterDataProvider;
|
|
18
19
|
mediaCenterSettingsHandler: MediaCenterSettingsHandler;
|
|
19
20
|
closeOrchestrator: ICloseOrchestrator;
|
|
21
|
+
onPlayerReachedEnd: () => void;
|
|
20
22
|
});
|
|
21
23
|
get active(): boolean;
|
|
22
24
|
get feedPlayerProps(): PlayerProps | null;
|
|
@@ -6,15 +6,17 @@ export class FeedHandler {
|
|
|
6
6
|
_active = $state(false);
|
|
7
7
|
_providersGenerator;
|
|
8
8
|
_feedPlayerProps = $state.raw(null);
|
|
9
|
-
|
|
9
|
+
_dataProvider;
|
|
10
10
|
_mediaCenterSettingsHandler;
|
|
11
11
|
_closeOrchestrator;
|
|
12
|
+
_onPlayerReachedEnd;
|
|
12
13
|
constructor(data) {
|
|
13
|
-
const {
|
|
14
|
-
this._providersGenerator = new FeedProvidersGenerator(
|
|
14
|
+
const { dataProvider, mediaCenterSettingsHandler, closeOrchestrator, onPlayerReachedEnd } = data;
|
|
15
|
+
this._providersGenerator = new FeedProvidersGenerator(dataProvider);
|
|
15
16
|
this._mediaCenterSettingsHandler = mediaCenterSettingsHandler;
|
|
16
|
-
this.
|
|
17
|
+
this._dataProvider = dataProvider;
|
|
17
18
|
this._closeOrchestrator = closeOrchestrator;
|
|
19
|
+
this._onPlayerReachedEnd = onPlayerReachedEnd;
|
|
18
20
|
}
|
|
19
21
|
get active() {
|
|
20
22
|
return this._active;
|
|
@@ -28,10 +30,13 @@ export class FeedHandler {
|
|
|
28
30
|
activatePostsFeed = async (options) => {
|
|
29
31
|
const { dataProvider, filter, onPostActivated } = options;
|
|
30
32
|
if (dataProvider) {
|
|
33
|
+
if (!dataProvider.onEndReached) {
|
|
34
|
+
dataProvider.onEndReached = this._onPlayerReachedEnd;
|
|
35
|
+
}
|
|
31
36
|
this._feedPlayerProps = this.makePostsPlayerProps({ dataProvider, onPostActivated });
|
|
32
37
|
}
|
|
33
38
|
else {
|
|
34
|
-
const dataProvider = this._providersGenerator.makePostPlayerItemsProvider(filter);
|
|
39
|
+
const dataProvider = this._providersGenerator.makePostPlayerItemsProvider({ filter, onEndReached: this._onPlayerReachedEnd });
|
|
35
40
|
this._feedPlayerProps = this.makePostsPlayerProps({ dataProvider, onPostActivated });
|
|
36
41
|
}
|
|
37
42
|
this._active = true;
|
|
@@ -39,10 +44,13 @@ export class FeedHandler {
|
|
|
39
44
|
activateStreamsFeed = async (options) => {
|
|
40
45
|
const { dataProvider, filter, onStreamActivated } = options;
|
|
41
46
|
if (dataProvider) {
|
|
47
|
+
if (!dataProvider.onEndReached) {
|
|
48
|
+
dataProvider.onEndReached = this._onPlayerReachedEnd;
|
|
49
|
+
}
|
|
42
50
|
this._feedPlayerProps = this.makeStreamsPlayerProps({ dataProvider, onStreamActivated });
|
|
43
51
|
}
|
|
44
52
|
else {
|
|
45
|
-
const dataProvider = this._providersGenerator.makeStreamsPlayerDataProvider(filter);
|
|
53
|
+
const dataProvider = this._providersGenerator.makeStreamsPlayerDataProvider({ filter, onEndReached: this._onPlayerReachedEnd });
|
|
46
54
|
this._feedPlayerProps = this.makeStreamsPlayerProps({ dataProvider, onStreamActivated });
|
|
47
55
|
}
|
|
48
56
|
this._active = true;
|
|
@@ -53,8 +61,8 @@ export class FeedHandler {
|
|
|
53
61
|
type: 'posts',
|
|
54
62
|
props: {
|
|
55
63
|
dataProvider: { type: 'buffer', buffer: initBufferFromProvider(dataProvider) },
|
|
56
|
-
socialInteractionsHandler: this.
|
|
57
|
-
analyticsHandler: this.
|
|
64
|
+
socialInteractionsHandler: this._dataProvider.handlers?.socialInteractionsHandler,
|
|
65
|
+
analyticsHandler: this._dataProvider.handlers?.analyticsHandler,
|
|
58
66
|
playerSettings: this._mediaCenterSettingsHandler.playerSettings,
|
|
59
67
|
closeOrchestrator: this._closeOrchestrator,
|
|
60
68
|
on: {
|
|
@@ -70,8 +78,8 @@ export class FeedHandler {
|
|
|
70
78
|
type: 'streams',
|
|
71
79
|
props: {
|
|
72
80
|
dataProvider: { type: 'buffer', buffer: new StreamsPlayerBuffer(dataProvider) },
|
|
73
|
-
analyticsHandler: this.
|
|
74
|
-
postSocialInteractionsHandler: this.
|
|
81
|
+
analyticsHandler: this._dataProvider.handlers?.analyticsHandler,
|
|
82
|
+
postSocialInteractionsHandler: this._dataProvider.handlers?.socialInteractionsHandler,
|
|
75
83
|
playerSettings: this._mediaCenterSettingsHandler.playerSettings,
|
|
76
84
|
closeOrchestrator: this._closeOrchestrator,
|
|
77
85
|
on: {
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IMediaCenterDataProvider } from '../../config/types';
|
|
2
2
|
import type { PostPlayerModel } from '../../../posts/posts-player/types';
|
|
3
3
|
import type { IStreamsPlayerDataProvider } from '../../../streams/streams-player/types';
|
|
4
4
|
import type { IFeedPlayerDataProvider } from '../../../ui/player/providers';
|
|
5
5
|
import type { PostsDataProviderFilter, StreamsDataProviderFilter } from './types';
|
|
6
6
|
export declare class FeedProvidersGenerator {
|
|
7
|
-
private
|
|
8
|
-
constructor(
|
|
9
|
-
makePostPlayerItemsProvider: (
|
|
10
|
-
|
|
7
|
+
private dataProvider;
|
|
8
|
+
constructor(dataProvider: IMediaCenterDataProvider);
|
|
9
|
+
makePostPlayerItemsProvider: (data: {
|
|
10
|
+
filter?: PostsDataProviderFilter;
|
|
11
|
+
onEndReached: () => void;
|
|
12
|
+
}) => IFeedPlayerDataProvider<PostPlayerModel>;
|
|
13
|
+
makeStreamsPlayerDataProvider: (data: {
|
|
14
|
+
filter?: StreamsDataProviderFilter;
|
|
15
|
+
onEndReached: () => void;
|
|
16
|
+
}) => IStreamsPlayerDataProvider;
|
|
11
17
|
}
|
|
@@ -2,15 +2,16 @@ import { ContinuationToken } from '../../../core/continuation-token';
|
|
|
2
2
|
import { CursorDataLoader } from '../../../core/data-loaders';
|
|
3
3
|
import { PostType } from '../../../core/enums';
|
|
4
4
|
export class FeedProvidersGenerator {
|
|
5
|
-
|
|
6
|
-
constructor(
|
|
7
|
-
this.
|
|
5
|
+
dataProvider;
|
|
6
|
+
constructor(dataProvider) {
|
|
7
|
+
this.dataProvider = dataProvider;
|
|
8
8
|
}
|
|
9
|
-
makePostPlayerItemsProvider = (
|
|
9
|
+
makePostPlayerItemsProvider = (data) => {
|
|
10
|
+
const { filter, onEndReached } = data;
|
|
10
11
|
const { categoryId, prefetchedItems: initialPrefetchedItems = [], initialPostId } = filter || {};
|
|
11
12
|
const loader = new CursorDataLoader({
|
|
12
13
|
loadPage: async (continuationToken) => {
|
|
13
|
-
const result = await this.
|
|
14
|
+
const result = await this.dataProvider.postsPlayer.getPostsCursor({
|
|
14
15
|
filter: {
|
|
15
16
|
types: [PostType.Article, PostType.Media, PostType.ShortVideo, PostType.Video],
|
|
16
17
|
categoryId,
|
|
@@ -39,14 +40,16 @@ export class FeedProvidersGenerator {
|
|
|
39
40
|
prefetchedItems,
|
|
40
41
|
startIndex: prefetchedItems.length ? 0 : -1
|
|
41
42
|
},
|
|
42
|
-
loadMore: loader.loadMore
|
|
43
|
+
loadMore: loader.loadMore,
|
|
44
|
+
onEndReached
|
|
43
45
|
};
|
|
44
46
|
};
|
|
45
|
-
makeStreamsPlayerDataProvider = (
|
|
47
|
+
makeStreamsPlayerDataProvider = (data) => {
|
|
48
|
+
const { filter, onEndReached } = data;
|
|
46
49
|
const { categoryId, prefetchedStreams: initialPrefetchedStreams = [], initialStreamId } = filter || {};
|
|
47
50
|
const loader = new CursorDataLoader({
|
|
48
51
|
loadPage: async (continuationToken) => {
|
|
49
|
-
const result = await this.
|
|
52
|
+
const result = await this.dataProvider.streamPlayer.getStreamsCursor({
|
|
50
53
|
filter: {
|
|
51
54
|
categoryId,
|
|
52
55
|
excludeIds: initialPrefetchedStreams.length ? initialPrefetchedStreams.map((i) => i.id) : undefined
|
|
@@ -73,7 +76,8 @@ export class FeedProvidersGenerator {
|
|
|
73
76
|
prefetchedStreams
|
|
74
77
|
},
|
|
75
78
|
loadMoreStreams: loader.loadMore,
|
|
76
|
-
getStreamPages: this.
|
|
79
|
+
getStreamPages: this.dataProvider.streamPlayer.getStreamPages,
|
|
80
|
+
onEndReached
|
|
77
81
|
};
|
|
78
82
|
};
|
|
79
83
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as MediaCenterFooter } from './media-center-footer.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as MediaCenterFooter } from './media-center-footer.svelte';
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IMediaCenterDataProvider } from '../../config/types';
|
|
2
2
|
import type { MediaCenterCategoryData } from '../types';
|
|
3
3
|
export declare class CategoriesHandler {
|
|
4
|
+
private readonly dataProvider;
|
|
4
5
|
private _allCateogories;
|
|
5
6
|
private _tagAssociations;
|
|
6
7
|
private _selectedCategoryId;
|
|
8
|
+
constructor(dataProvider: IMediaCenterDataProvider);
|
|
7
9
|
get allCategories(): {
|
|
8
10
|
id: string;
|
|
9
11
|
name: string;
|
|
@@ -14,10 +16,6 @@ export declare class CategoriesHandler {
|
|
|
14
16
|
get selectedCategoryId(): string | null;
|
|
15
17
|
set selectedCategoryId(value: string | null);
|
|
16
18
|
getCategoryData: (categoryId: string) => MediaCenterCategoryData | null;
|
|
17
|
-
init: (data: {
|
|
18
|
-
categories: MediaCenterConfigModel["contentCategories"];
|
|
19
|
-
tagAssociations: MediaCenterConfigModel["categoryTagAssociations"];
|
|
20
|
-
}) => Promise<void>;
|
|
21
19
|
}
|
|
22
20
|
export type MediaCenterCategoryModel = {
|
|
23
21
|
id: string;
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
export class CategoriesHandler {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
dataProvider;
|
|
3
|
+
_allCateogories = $derived.by(() => this.dataProvider.model?.contentCategories ?? []);
|
|
4
|
+
_tagAssociations = $derived.by(() => {
|
|
5
|
+
const newTagAssociations = new Map();
|
|
6
|
+
if (this.dataProvider.model?.categoryTagAssociations) {
|
|
7
|
+
for (const assoc of this.dataProvider.model.categoryTagAssociations) {
|
|
8
|
+
if (assoc.tag) {
|
|
9
|
+
newTagAssociations.set(assoc.id, assoc.tag);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return newTagAssociations;
|
|
14
|
+
});
|
|
4
15
|
_selectedCategoryId = $state.raw(null);
|
|
16
|
+
constructor(dataProvider) {
|
|
17
|
+
this.dataProvider = dataProvider;
|
|
18
|
+
}
|
|
5
19
|
get allCategories() {
|
|
6
20
|
return this._allCateogories;
|
|
7
21
|
}
|
|
@@ -40,15 +54,4 @@ export class CategoriesHandler {
|
|
|
40
54
|
};
|
|
41
55
|
return selectedCategoryData;
|
|
42
56
|
};
|
|
43
|
-
init = async (data) => {
|
|
44
|
-
const { categories, tagAssociations } = data;
|
|
45
|
-
this._allCateogories = categories;
|
|
46
|
-
const newTagAssociations = new Map();
|
|
47
|
-
for (const assoc of tagAssociations) {
|
|
48
|
-
if (assoc.tag) {
|
|
49
|
-
newTagAssociations.set(assoc.id, assoc.tag);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
this._tagAssociations = newTagAssociations;
|
|
53
|
-
};
|
|
54
57
|
}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type
|
|
1
|
+
import type { Locale } from '../../../core/locale';
|
|
2
|
+
import { type ThemeValue } from '../../../core/theme';
|
|
3
|
+
import type { IMediaCenterDataProvider } from '../../config/types';
|
|
4
|
+
import { PlayerColors } from '../../../ui/player/colors';
|
|
5
|
+
import type { MediaCenterSettings } from '../media-center-settings.svelte';
|
|
3
6
|
export declare class MediaCenterSettingsHandler {
|
|
4
7
|
private _backgroundImageUrl;
|
|
8
|
+
private _mediaCenterSettings;
|
|
9
|
+
private _dataProvider;
|
|
5
10
|
private _contentPlayerSettings;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
constructor(init: {
|
|
12
|
+
readonly dataProvider: IMediaCenterDataProvider;
|
|
13
|
+
settings: MediaCenterSettings;
|
|
14
|
+
});
|
|
15
|
+
get playerSettings(): {
|
|
16
|
+
locale?: Locale;
|
|
17
|
+
showStreamsCloudWatermark?: boolean;
|
|
18
|
+
playerColors?: Record<ThemeValue, PlayerColors>;
|
|
19
|
+
};
|
|
20
|
+
get actualMediaCenterColors(): PlayerColors;
|
|
21
|
+
get locale(): Locale;
|
|
10
22
|
get backgroundWrapperProps(): {
|
|
11
23
|
backgroundDisabled: boolean;
|
|
12
24
|
backgroundImageUrl: string | null;
|
|
@@ -14,7 +26,6 @@ export declare class MediaCenterSettingsHandler {
|
|
|
14
26
|
};
|
|
15
27
|
get backgroundImageLoadedHandler(): ((url: string | null) => void) | undefined;
|
|
16
28
|
updateBackgroundImageUrl: (url: string | null | "not-applicable") => void;
|
|
17
|
-
updatePlayerColors: (colors: PlayerColors) => void;
|
|
18
29
|
}
|
|
19
30
|
export type MediaCenterSettingsWithColors = MediaCenterSettings & {
|
|
20
31
|
playerColors?: PlayerColors;
|