@streamscloud/embeddable 12.1.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ads/ad-card/cmp.ad-card.svelte +4 -16
- package/dist/content-player/cmp.content-player.svelte +1 -1
- package/dist/content-player/content-player-config.svelte.d.ts +2 -12
- package/dist/content-player/content-player-config.svelte.js +1 -1
- package/dist/content-player/content-player-settings.svelte.d.ts +16 -0
- package/dist/content-player/content-player-settings.svelte.js +27 -0
- package/dist/content-player/controls-and-attachments.svelte +32 -2
- package/dist/content-player/controls-and-attachments.svelte.d.ts +1 -0
- package/dist/content-player/index.d.ts +1 -0
- package/dist/content-player/index.js +1 -0
- package/dist/content-player/overview-panel.svelte +2 -2
- package/dist/content-player/ui-manager.svelte.d.ts +2 -1
- package/dist/content-player/ui-manager.svelte.js +2 -1
- package/dist/core/enums.d.ts +3 -0
- package/dist/core/enums.js +4 -0
- package/dist/core/theme/index.d.ts +2 -0
- package/dist/core/theme/index.js +1 -0
- package/dist/core/theme/theme-store.svelte.d.ts +6 -0
- package/dist/core/theme/theme-store.svelte.js +10 -0
- package/dist/external-api/data-providers/index.d.ts +6 -0
- package/dist/external-api/data-providers/index.js +6 -0
- package/dist/external-api/data-providers/internal-media-center-data-provider.svelte.d.ts +15 -0
- package/dist/{media-center/config/internal-media-center-config.js → external-api/data-providers/internal-media-center-data-provider.svelte.js} +33 -17
- package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.d.ts +1 -1
- package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.js +1 -1
- package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.d.ts +1 -1
- package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.d.ts +1 -1
- package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.js +1 -1
- package/dist/{media-center/config → external-api/data-providers}/operations.generated.d.ts +6 -0
- package/dist/{media-center/config → external-api/data-providers}/operations.generated.js +13 -0
- package/dist/{media-center/config → external-api/data-providers}/operations.graphql +6 -0
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.d.ts +1 -1
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.js +2 -2
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.d.ts +1 -1
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.d.ts +2 -2
- package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.js +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.d.ts +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.js +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.d.ts +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.d.ts +1 -1
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.js +2 -2
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.d.ts +2 -2
- package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.js +6 -2
- package/dist/external-api/index.d.ts +3 -0
- package/dist/external-api/index.js +3 -0
- package/dist/external-api/media-page/index.d.ts +83 -0
- package/dist/external-api/media-page/index.js +82 -0
- package/dist/{short-videos → external-api}/short-videos-player/index.d.ts +27 -12
- package/dist/{short-videos → external-api}/short-videos-player/index.js +35 -28
- package/dist/external-api/streams-player/index.d.ts +105 -0
- package/dist/external-api/streams-player/index.js +110 -0
- package/dist/media-center/config/types.d.ts +28 -27
- package/dist/media-center/index.d.ts +3 -1
- package/dist/media-center/media-center/cmp.media-center-proxy.svelte +59 -0
- package/dist/media-center/media-center/cmp.media-center-proxy.svelte.d.ts +15 -0
- package/dist/media-center/media-center/discover/community-features-localization.d.ts +8 -0
- package/dist/media-center/media-center/discover/community-features-localization.js +31 -0
- package/dist/media-center/media-center/discover/community-features.svelte +171 -0
- package/dist/media-center/media-center/discover/community-features.svelte.d.ts +11 -0
- package/dist/media-center/media-center/discover/data-loading.d.ts +3 -3
- package/dist/media-center/media-center/discover/data-loading.js +5 -5
- package/dist/media-center/media-center/discover/discover-header.svelte +13 -65
- package/dist/media-center/media-center/discover/discover-header.svelte.d.ts +0 -2
- package/dist/media-center/media-center/discover/discover-view-handler.svelte.d.ts +3 -3
- package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +4 -4
- package/dist/media-center/media-center/discover/discover-view.svelte +6 -6
- package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +0 -2
- package/dist/media-center/media-center/feed/feed-handler.svelte.d.ts +5 -3
- package/dist/media-center/media-center/feed/feed-handler.svelte.js +18 -10
- package/dist/media-center/media-center/feed/feed-providers-generator.d.ts +11 -5
- package/dist/media-center/media-center/feed/feed-providers-generator.js +13 -9
- package/dist/media-center/media-center/footer/index.d.ts +1 -0
- package/dist/media-center/media-center/footer/index.js +1 -0
- package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte +5 -5
- package/dist/media-center/media-center/handlers/categories-handler.svelte.d.ts +3 -5
- package/dist/media-center/media-center/handlers/categories-handler.svelte.js +16 -13
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +18 -5
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +21 -9
- package/dist/media-center/media-center/{header-footer → header}/index.d.ts +0 -1
- package/dist/media-center/media-center/{header-footer → header}/index.js +0 -1
- package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte +5 -4
- package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte +138 -35
- package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte.d.ts +2 -2
- package/dist/media-center/media-center/index.d.ts +2 -1
- package/dist/media-center/media-center/index.js +2 -1
- package/dist/media-center/media-center/media-center-context.svelte.d.ts +16 -20
- package/dist/media-center/media-center/media-center-context.svelte.js +61 -19
- package/dist/media-center/media-center/media-center-settings.svelte.d.ts +11 -0
- package/dist/media-center/media-center/media-center-settings.svelte.js +23 -0
- package/dist/media-center/media-center/{cmp.media-center.svelte → media-center-view.svelte} +65 -108
- package/dist/media-center/media-center/media-center-view.svelte.d.ts +9 -0
- package/dist/media-center/media-center/menu/category-following-wrapper.svelte.d.ts +1 -1
- package/dist/media-center/media-center/menu/menu.svelte +40 -35
- package/dist/media-center/media-center/menu/menu.svelte.d.ts +0 -2
- package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.d.ts +3 -3
- package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.js +4 -4
- package/dist/media-center/media-center/moments/cmp.moments-circle.svelte +24 -7
- package/dist/media-center/media-center/moments/index.d.ts +1 -0
- package/dist/media-center/media-center/moments/index.js +1 -0
- package/dist/media-center/media-center/moments/moments-feed-handler.svelte.d.ts +26 -0
- package/dist/media-center/media-center/moments/moments-feed-handler.svelte.js +49 -0
- package/dist/media-center/media-center/moments/moments-state.svelte.d.ts +20 -0
- package/dist/media-center/media-center/moments/moments-state.svelte.js +82 -0
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.d.ts +3 -3
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.js +4 -4
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -3
- package/dist/media-center/media-center/types.d.ts +4 -11
- package/dist/media-center/membership/index.d.ts +1 -0
- package/dist/media-center/membership/index.js +1 -0
- package/dist/media-center/membership/mock-membership-handler.svelte.d.ts +10 -0
- package/dist/media-center/membership/mock-membership-handler.svelte.js +21 -0
- package/dist/media-center/membership/types.d.ts +10 -0
- package/dist/media-center/membership/types.js +1 -0
- package/dist/media-center/navigation/index.d.ts +2 -0
- package/dist/media-center/navigation/index.js +1 -0
- package/dist/media-center/navigation/media-center-state.d.ts +19 -0
- package/dist/media-center/navigation/media-center-state.js +1 -0
- package/dist/media-center/navigation/mock-navigation-handler.svelte.d.ts +6 -0
- package/dist/media-center/navigation/mock-navigation-handler.svelte.js +6 -0
- package/dist/media-center/navigation/types.d.ts +5 -0
- package/dist/media-center/navigation/types.js +1 -0
- package/dist/media-page/cmp.media-page.svelte +45 -0
- package/dist/media-page/cmp.media-page.svelte.d.ts +11 -0
- package/dist/media-page/index.d.ts +42 -58
- package/dist/media-page/index.js +131 -17
- package/dist/posts/attachments/cmp.attachments.svelte +1 -1
- package/dist/posts/controls/cmp.controls.svelte +4 -1
- package/dist/posts/controls/cmp.controls.svelte.d.ts +2 -0
- package/dist/posts/post-viewer/attachments-horizontal.svelte +4 -12
- package/dist/posts/post-viewer/heading.svelte +4 -4
- package/dist/posts/post-viewer/media/post-media.svelte +1 -1
- package/dist/posts/post-viewer/post-texts.svelte +2 -2
- package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +1 -0
- package/dist/posts/posts-player/index.d.ts +31 -32
- package/dist/posts/posts-player/index.js +90 -35
- package/dist/posts/posts-player/posts-player-proxy.svelte +13 -4
- package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +1 -0
- package/dist/posts/posts-player/posts-player-view.svelte +1 -1
- package/dist/posts/posts-player/types.d.ts +2 -1
- package/dist/products/product-card/cmp.product-card.svelte +4 -16
- package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +6 -6
- package/dist/streams/layout/styles-transformer.d.ts +1 -1
- package/dist/streams/stream-card/cmp.stream-card.svelte +1 -1
- package/dist/streams/streams-player/cmp.streams-player.svelte +42 -0
- package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +24 -0
- package/dist/streams/streams-player/index.d.ts +18 -83
- package/dist/streams/streams-player/index.js +85 -65
- package/dist/streams/streams-player/stream-overview.svelte +1 -1
- package/dist/streams/streams-player/streams-player-buffer.svelte.js +2 -1
- package/dist/streams/streams-player/streams-player-proxy.svelte +32 -0
- package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +26 -0
- package/dist/streams/streams-player/streams-player-view.svelte +1 -1
- package/dist/streams/streams-player/types.d.ts +3 -1
- package/dist/ui/button/cmp.options-button.svelte +123 -0
- package/dist/ui/button/cmp.options-button.svelte.d.ts +20 -0
- package/dist/ui/button/index.d.ts +1 -0
- package/dist/ui/button/index.js +1 -0
- package/dist/ui/button/resources/button-theme.svelte +6 -143
- package/dist/ui/button/resources/button-types.d.ts +0 -1
- package/dist/ui/button/resources/button-types.js +0 -1
- package/dist/ui/icon/cmp.icon.svelte +8 -28
- package/dist/ui/image/cmp.image-rounded.svelte +3 -10
- package/dist/ui/image/cmp.image-stub.svelte +1 -4
- package/dist/ui/image/cmp.image.svelte +1 -4
- package/dist/ui/loading/cmp.loading.svelte +1 -4
- package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte +2 -2
- package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte.d.ts +2 -2
- package/dist/ui/player/button/cmp.player-button.svelte +7 -3
- package/dist/ui/player/button/cmp.player-buttons-group.svelte +4 -3
- package/dist/ui/player/button/cmp.player-buttons-group.svelte.d.ts +2 -2
- package/dist/ui/player/button/index.d.ts +1 -1
- package/dist/ui/player/button/types.d.ts +1 -1
- package/dist/ui/player/colors/index.d.ts +1 -1
- package/dist/ui/player/colors/index.js +1 -1
- package/dist/ui/player/colors/player-colors.d.ts +15 -1
- package/dist/ui/player/colors/player-colors.js +24 -1
- package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +1 -0
- package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +7 -1
- package/dist/ui/player/providers/default-feed-player-buffer.svelte.d.ts +1 -0
- package/dist/ui/player/providers/default-feed-player-buffer.svelte.js +7 -1
- package/dist/ui/player/providers/types.d.ts +3 -1
- package/dist/ui/shadow-dom/cmp.shadow-root.svelte +158 -0
- package/dist/ui/shadow-dom/colors.scss +74 -0
- package/dist/ui/shadow-dom/index.d.ts +1 -0
- package/dist/ui/shadow-dom/index.js +1 -0
- package/dist/ui/shadow-dom/shadow-root-service.js +0 -4
- package/dist/ui/slider/cmp.slider.svelte +5 -5
- package/package.json +5 -1
- package/dist/content-player/content-player-settings.d.ts +0 -12
- package/dist/content-player/content-player-settings.js +0 -22
- package/dist/media-center/config/internal-media-center-config.d.ts +0 -14
- package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +0 -4
- package/dist/media-center/media-center/discover/discover-header-localization.d.ts +0 -6
- package/dist/media-center/media-center/discover/discover-header-localization.js +0 -15
- package/dist/posts/handlers/index.d.ts +0 -1
- package/dist/posts/handlers/index.js +0 -1
- package/dist/short-videos/data-providers/index.d.ts +0 -1
- package/dist/short-videos/data-providers/index.js +0 -1
- package/dist/ui/with-background/cmp.with-background.svelte +0 -86
- package/dist/ui/with-background/index.d.ts +0 -1
- package/dist/ui/with-background/index.js +0 -1
- /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.d.ts +0 -0
- /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.js +0 -0
- /package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.js +0 -0
- /package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.d.ts +0 -0
- /package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.js +0 -0
- /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.d.ts +0 -0
- /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.js +0 -0
- /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.js +0 -0
- /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.graphql +0 -0
- /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.d.ts +0 -0
- /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.js +0 -0
- /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.js +0 -0
- /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.graphql +0 -0
- /package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte.d.ts +0 -0
- /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.d.ts +0 -0
- /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.js +0 -0
- /package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte.d.ts +0 -0
- /package/dist/ui/{with-background/cmp.with-background.svelte.d.ts → shadow-dom/cmp.shadow-root.svelte.d.ts} +0 -0
|
@@ -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
|
-
|
|
14
|
-
const
|
|
13
|
+
const HEADER_CONTENT_MAX_WIDTH = 1180;
|
|
14
|
+
const HEADER_SIDE_SPACER_MIN_WIDTH = 30;
|
|
15
|
+
let { context, on, dynamicActions } = $props();
|
|
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,7 +170,12 @@ const styles = $derived.by(() => {
|
|
|
106
170
|
{localization.buttons.cart}
|
|
107
171
|
</span>
|
|
108
172
|
</button>
|
|
109
|
-
<button
|
|
173
|
+
<button
|
|
174
|
+
type="button"
|
|
175
|
+
class="control-button"
|
|
176
|
+
class:control-button--active={context.momentsFeedHandler.active}
|
|
177
|
+
class:control-button--indicator={context.momentsFeedHandler.hasUnwatchedMoments}
|
|
178
|
+
onclick={() => context.playMoments()}>
|
|
110
179
|
<span class="control-button__value">
|
|
111
180
|
{localization.buttons.moments}
|
|
112
181
|
</span>
|
|
@@ -138,16 +207,25 @@ const styles = $derived.by(() => {
|
|
|
138
207
|
</div>
|
|
139
208
|
</div>
|
|
140
209
|
</div>
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
<
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
210
|
+
<div class="spacer spacer--right">
|
|
211
|
+
{#if dynamicActions}
|
|
212
|
+
<div class="dynamic-actions" use:handleDynamicActionsMounted>
|
|
213
|
+
<div class="dynamic-actions__content">
|
|
214
|
+
{@render dynamicActions()}
|
|
215
|
+
</div>
|
|
216
|
+
</div>
|
|
217
|
+
{/if}
|
|
218
|
+
{#if context.closeOrchestrator.closeTriggerVisible}
|
|
219
|
+
<div class="close-button" use:handleCloseButtonMounted>
|
|
220
|
+
<PlayerButton
|
|
221
|
+
icon={IconDismiss}
|
|
222
|
+
zoom={0.8}
|
|
223
|
+
activeColor={context.mediaCenterColors.button}
|
|
224
|
+
inactiveColor={context.mediaCenterColors.buttonInactive}
|
|
225
|
+
on={{ click: context.closeOrchestrator.requestClose }} />
|
|
226
|
+
</div>
|
|
227
|
+
{/if}
|
|
228
|
+
</div>
|
|
151
229
|
</div>
|
|
152
230
|
|
|
153
231
|
<style>@keyframes fadeIn {
|
|
@@ -162,24 +240,30 @@ const styles = $derived.by(() => {
|
|
|
162
240
|
}
|
|
163
241
|
}
|
|
164
242
|
.media-center-header-container {
|
|
165
|
-
padding-top: 2.1875rem;
|
|
166
|
-
padding-inline: 4.375rem;
|
|
167
|
-
pointer-events: none;
|
|
168
243
|
z-index: 1;
|
|
169
244
|
display: flex;
|
|
170
|
-
justify-content: center;
|
|
171
245
|
position: relative;
|
|
172
246
|
}
|
|
173
247
|
|
|
248
|
+
.spacer {
|
|
249
|
+
flex: 1 1 auto;
|
|
250
|
+
display: flex;
|
|
251
|
+
padding-inline: 0.9375rem;
|
|
252
|
+
gap: 0.9375rem;
|
|
253
|
+
}
|
|
254
|
+
.spacer--right {
|
|
255
|
+
justify-content: flex-end;
|
|
256
|
+
}
|
|
257
|
+
|
|
174
258
|
.media-center-header {
|
|
175
|
-
--_media-center-header--button-color: var(--media-center-header--button-color,
|
|
259
|
+
--_media-center-header--button-color: var(--media-center-header--button-color, var(--sc-mc-color--button-player));
|
|
176
260
|
--_media-center-header--button-color--inactive: var(
|
|
177
261
|
--media-center-header--button-color--inactive,
|
|
178
|
-
rgb(from var(--_media-center-header--button-color,
|
|
262
|
+
rgb(from var(--_media-center-header--button-color, var(--sc-mc-color--button-player)) r g b / 60%)
|
|
179
263
|
);
|
|
264
|
+
--_media-center-header--button-indicator: var(--media-center-header--button-indicator, var(--sc-mc-color--icon-success));
|
|
265
|
+
padding-top: 2.1875rem;
|
|
180
266
|
width: 73.75rem;
|
|
181
|
-
max-width: 100%;
|
|
182
|
-
margin: 0 auto;
|
|
183
267
|
display: flex;
|
|
184
268
|
align-items: center;
|
|
185
269
|
gap: 1.5rem;
|
|
@@ -264,7 +348,7 @@ const styles = $derived.by(() => {
|
|
|
264
348
|
border-radius: 0.875rem;
|
|
265
349
|
background-color: var(--_media-center-header--button-color--inactive);
|
|
266
350
|
border-color: var(--_media-center-header--button-color);
|
|
267
|
-
color:
|
|
351
|
+
color: var(--sc-mc-color--text-inactive);
|
|
268
352
|
transition: background 0.3s ease-in-out;
|
|
269
353
|
-webkit-user-drag: none;
|
|
270
354
|
user-select: none;
|
|
@@ -278,21 +362,30 @@ const styles = $derived.by(() => {
|
|
|
278
362
|
}
|
|
279
363
|
.control-button--active {
|
|
280
364
|
background-color: var(--_media-center-header--button-color);
|
|
281
|
-
color:
|
|
365
|
+
color: var(--sc-mc-color--text-white);
|
|
366
|
+
}
|
|
367
|
+
.control-button--indicator::after {
|
|
368
|
+
content: "";
|
|
369
|
+
position: absolute;
|
|
370
|
+
top: 0rem;
|
|
371
|
+
right: 0rem;
|
|
372
|
+
width: 0.875rem;
|
|
373
|
+
height: 0.875rem;
|
|
374
|
+
transform: translate(20%, -20%);
|
|
375
|
+
background-color: var(--_media-center-header--button-indicator);
|
|
376
|
+
border-radius: 50%;
|
|
282
377
|
}
|
|
283
378
|
.control-button:hover:not(.control-button--active) {
|
|
284
379
|
background-color: var(--_media-center-header--button-color);
|
|
285
380
|
}
|
|
286
381
|
.control-button__icon {
|
|
287
382
|
--icon--size: 1rem;
|
|
288
|
-
--icon--color: #f2f2f2;
|
|
289
383
|
line-height: 0;
|
|
290
384
|
}
|
|
291
385
|
.control-button__icon--trigger {
|
|
292
386
|
--icon--size: 1.5rem;
|
|
293
387
|
}
|
|
294
388
|
.control-button__icon--active {
|
|
295
|
-
--icon--color: #ffffff;
|
|
296
389
|
--icon--stroke-width: 0.2;
|
|
297
390
|
}
|
|
298
391
|
.control-button__value {
|
|
@@ -305,9 +398,19 @@ const styles = $derived.by(() => {
|
|
|
305
398
|
min-width: 0;
|
|
306
399
|
}
|
|
307
400
|
|
|
401
|
+
.dynamic-actions {
|
|
402
|
+
display: flex;
|
|
403
|
+
padding-top: 2.1875rem;
|
|
404
|
+
}
|
|
405
|
+
.dynamic-actions__content {
|
|
406
|
+
display: flex;
|
|
407
|
+
justify-content: center;
|
|
408
|
+
}
|
|
409
|
+
|
|
308
410
|
.close-button {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
411
|
+
justify-self: flex-end;
|
|
412
|
+
flex-shrink: 0;
|
|
413
|
+
padding-block: 0.9375rem;
|
|
414
|
+
padding-right: 0.3125rem;
|
|
312
415
|
z-index: 1;
|
|
313
416
|
}</style>
|
package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte.d.ts
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { Locale } from '../../../core/locale';
|
|
2
1
|
import type { MediaCenterContext } from '../media-center-context.svelte';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
3
|
type Props = {
|
|
4
4
|
context: MediaCenterContext;
|
|
5
|
-
locale?: Locale;
|
|
6
5
|
on: {
|
|
7
6
|
headerHeightChanged: (height: number) => void;
|
|
8
7
|
};
|
|
8
|
+
dynamicActions?: Snippet;
|
|
9
9
|
};
|
|
10
10
|
declare const MediaCenterHeader: import("svelte").Component<Props, {}, "">;
|
|
11
11
|
type MediaCenterHeader = ReturnType<typeof MediaCenterHeader>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as MediaCenterProxy } from './cmp.media-center-proxy.svelte';
|
|
2
|
+
export { MediaCenterSettings } from './media-center-settings.svelte';
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as MediaCenterProxy } from './cmp.media-center-proxy.svelte';
|
|
2
|
+
export { MediaCenterSettings } from './media-center-settings.svelte';
|
|
@@ -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,32 +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
|
|
32
|
-
brand: string | null;
|
|
33
|
-
button: string | null;
|
|
34
|
-
buttonInactive: string | null;
|
|
35
|
-
cardButton: string | null;
|
|
36
|
-
cardBackground: string | null;
|
|
37
|
-
menuBackground: string | null;
|
|
38
|
-
playerBackground: string | null;
|
|
39
|
-
price: string | null;
|
|
40
|
-
salePrice: string | null;
|
|
41
|
-
sidebarBackground: string | null;
|
|
42
|
-
} | null;
|
|
31
|
+
get model(): import("../config/types").MediaCenterModel | null;
|
|
32
|
+
get mediaCenterColors(): import("../../ui/player/colors").PlayerColors;
|
|
43
33
|
get loading(): boolean;
|
|
44
34
|
get overlayIsActive(): boolean;
|
|
45
35
|
get backgroundWrapperProps(): {
|
|
@@ -48,6 +38,11 @@ export declare class MediaCenterContext {
|
|
|
48
38
|
backgroundColor?: string | null;
|
|
49
39
|
};
|
|
50
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;
|
|
45
|
+
get locale(): import("../../core/locale").Locale;
|
|
51
46
|
toggleMenu: () => void;
|
|
52
47
|
showMenu: () => void;
|
|
53
48
|
hideMenu: () => void;
|
|
@@ -56,6 +51,7 @@ export declare class MediaCenterContext {
|
|
|
56
51
|
}) => Promise<void>;
|
|
57
52
|
playPostsFeed: (options: Parameters<FeedHandler["activatePostsFeed"]>[0]) => Promise<void>;
|
|
58
53
|
playStreamsFeed: (options: Parameters<FeedHandler["activateStreamsFeed"]>[0]) => Promise<void>;
|
|
54
|
+
playMoments: () => Promise<void>;
|
|
59
55
|
playRootFeed: () => Promise<void>;
|
|
60
56
|
tryActivateStreamsInCategory: (categoryId: string) => Promise<void>;
|
|
61
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.
|
|
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,21 @@ 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
|
+
}
|
|
83
|
+
get locale() {
|
|
84
|
+
return this.settingsHandler.locale;
|
|
85
|
+
}
|
|
55
86
|
toggleMenu = () => {
|
|
56
87
|
if (this.menuActive) {
|
|
57
88
|
this.hideMenu();
|
|
@@ -71,6 +102,7 @@ export class MediaCenterContext {
|
|
|
71
102
|
this.settingsHandler.updateBackgroundImageUrl('not-applicable');
|
|
72
103
|
this.hideMenu();
|
|
73
104
|
this.feedHandler.deactivate();
|
|
105
|
+
this.momentsFeedHandler.deactivate();
|
|
74
106
|
this.streamsInCategoryHandler.deactivate();
|
|
75
107
|
this.categoriesHandler.selectedCategoryId = options.categoryId;
|
|
76
108
|
const childCategories = this.categoriesHandler.allCategories.filter((c) => c.parentId === this.categoriesHandler.selectedCategoryId);
|
|
@@ -89,6 +121,16 @@ export class MediaCenterContext {
|
|
|
89
121
|
this.categoriesHandler.selectedCategoryId = options.filter?.categoryId ?? null;
|
|
90
122
|
this.feedHandler.activateStreamsFeed(options);
|
|
91
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
|
+
};
|
|
92
134
|
playRootFeed = async () => {
|
|
93
135
|
this.deactivateOtherThanFeed();
|
|
94
136
|
this.categoriesHandler.selectedCategoryId = null;
|
|
@@ -104,23 +146,23 @@ export class MediaCenterContext {
|
|
|
104
146
|
await this.streamsInCategoryHandler.activate(selectedCategoryData);
|
|
105
147
|
this.hideMenu();
|
|
106
148
|
this.feedHandler.deactivate();
|
|
149
|
+
this.momentsFeedHandler.deactivate();
|
|
107
150
|
this.discoverHandler.deactivate();
|
|
108
151
|
this.categoriesHandler.selectedCategoryId = categoryId;
|
|
109
152
|
};
|
|
110
153
|
deactivateOtherThanFeed = () => {
|
|
111
154
|
this.hideMenu();
|
|
155
|
+
this.momentsFeedHandler.deactivate();
|
|
112
156
|
this.discoverHandler.deactivate();
|
|
113
157
|
this.streamsInCategoryHandler.deactivate();
|
|
114
158
|
};
|
|
115
159
|
init = async (config, on) => {
|
|
116
160
|
try {
|
|
117
|
-
|
|
118
|
-
if (!
|
|
161
|
+
const configModel = await config.fetchModel();
|
|
162
|
+
if (!configModel) {
|
|
119
163
|
on.failed();
|
|
120
164
|
return;
|
|
121
165
|
}
|
|
122
|
-
this.categoriesHandler.init({ categories: this._mediaCenterConfig.contentCategories, tagAssociations: this._mediaCenterConfig.categoryTagAssociations });
|
|
123
|
-
this.settingsHandler.updatePlayerColors(this._mediaCenterConfig.playerColors);
|
|
124
166
|
on.initialized(this);
|
|
125
167
|
this.initialized = true;
|
|
126
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
|
+
}
|