@streamscloud/embeddable 14.0.0-rc.0 → 14.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/core/analytics.profile-id.d.ts +5 -0
- package/dist/core/{analytics.installation-id.js → analytics.profile-id.js} +10 -20
- package/dist/external-api/data-providers/internal-media-center-analytics-handler.d.ts +14 -14
- package/dist/external-api/data-providers/internal-media-center-analytics-handler.js +19 -170
- package/dist/external-api/data-providers/internal-media-center-data-provider.svelte.js +6 -6
- package/dist/external-api/data-providers/internal-post-analytics-handler.d.ts +7 -7
- package/dist/external-api/data-providers/internal-post-analytics-handler.js +11 -72
- package/dist/external-api/data-providers/internal-stream-analytics-handler.d.ts +13 -12
- package/dist/external-api/data-providers/internal-stream-analytics-handler.js +18 -162
- package/dist/external-api/data-providers/mocks/index.d.ts +5 -0
- package/dist/external-api/data-providers/mocks/index.js +5 -0
- package/dist/{media-center/categories-following → external-api/data-providers/mocks}/mock-categories-following-handler.svelte.d.ts +1 -1
- package/dist/external-api/data-providers/mocks/mock-content-management-handler.svelte.d.ts +29 -0
- package/dist/external-api/data-providers/mocks/mock-content-management-handler.svelte.js +61 -0
- package/dist/{media-center/membership → external-api/data-providers/mocks}/mock-membership-handler.svelte.d.ts +1 -1
- package/dist/{media-center/navigation → external-api/data-providers/mocks}/mock-navigation-handler.svelte.d.ts +1 -2
- package/dist/{posts/social-interactions → external-api/data-providers/mocks}/mock-post-social-interactions-handler.svelte.d.ts +1 -2
- package/dist/{posts/social-interactions → external-api/data-providers/mocks}/mock-post-social-interactions-handler.svelte.js +17 -6
- package/dist/external-api/data-providers/mocks/operations.generated.d.ts +115 -0
- package/dist/external-api/data-providers/mocks/operations.generated.js +377 -0
- package/dist/external-api/data-providers/mocks/operations.graphql +18 -0
- package/dist/external-api/data-providers/post-data-loaders/mapper.js +3 -1
- package/dist/media-center/config/types.d.ts +7 -1
- package/dist/media-center/content-management/index.d.ts +1 -0
- package/dist/media-center/content-management/index.js +1 -0
- package/dist/media-center/content-management/types.d.ts +24 -0
- package/dist/media-center/content-management/types.js +1 -0
- package/dist/media-center/index.d.ts +2 -1
- package/dist/media-center/media-center/cmp.media-center-proxy.svelte +2 -2
- package/dist/media-center/media-center/discover/data-loading.d.ts +3 -0
- package/dist/media-center/media-center/discover/data-loading.js +13 -2
- package/dist/media-center/media-center/discover/discover-view-handler.svelte.d.ts +23 -0
- package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +88 -0
- package/dist/media-center/media-center/discover/discover-view.svelte +90 -47
- package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +2 -2
- package/dist/media-center/media-center/footer/media-center-footer.svelte +1 -1
- package/dist/media-center/media-center/handlers/index.d.ts +1 -0
- package/dist/media-center/media-center/handlers/index.js +1 -0
- package/dist/media-center/media-center/handlers/media-center-content-handler.svelte.d.ts +62 -0
- package/dist/media-center/media-center/handlers/media-center-content-handler.svelte.js +144 -0
- package/dist/media-center/media-center/header/media-center-header-mobile.svelte +10 -7
- package/dist/media-center/media-center/header/media-center-header.svelte +1 -1
- package/dist/media-center/media-center/media-center-context.svelte.d.ts +3 -2
- package/dist/media-center/media-center/media-center-context.svelte.js +30 -11
- package/dist/media-center/media-center/media-center-view.svelte +31 -13
- package/dist/media-center/media-center/menu/menu.svelte +16 -7
- package/dist/media-center/media-center/menu/menu.svelte.d.ts +1 -0
- package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.d.ts +7 -0
- package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.js +23 -8
- package/dist/media-center/media-center/moments/moments-feed-handler.svelte.d.ts +19 -2
- package/dist/media-center/media-center/moments/moments-feed-handler.svelte.js +51 -6
- package/dist/media-center/media-center/moments/moments-state.svelte.d.ts +2 -0
- package/dist/media-center/media-center/moments/moments-state.svelte.js +16 -1
- package/dist/media-center/media-center/posts-feed/posts-feed-handler.svelte.d.ts +24 -4
- package/dist/media-center/media-center/posts-feed/posts-feed-handler.svelte.js +90 -9
- package/dist/media-center/media-center/streams-feed/streams-feed-handler.svelte.d.ts +18 -3
- package/dist/media-center/media-center/streams-feed/streams-feed-handler.svelte.js +64 -9
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -6
- package/dist/posts/controls/index.d.ts +2 -1
- package/dist/posts/controls/index.js +2 -1
- package/dist/posts/controls/post-actions-generator.svelte.d.ts +20 -0
- package/dist/posts/controls/post-actions-generator.svelte.js +27 -0
- package/dist/posts/controls/post-actions-handler.svelte.d.ts +26 -0
- package/dist/posts/controls/post-actions-handler.svelte.js +56 -0
- package/dist/posts/index.d.ts +1 -0
- package/dist/posts/model/types.d.ts +1 -0
- package/dist/posts/post-viewer/cmp.post-viewer.svelte +6 -7
- package/dist/posts/post-viewer/cmp.post-viewer.svelte.d.ts +2 -2
- package/dist/posts/post-viewer/mapper.js +1 -0
- package/dist/posts/posts-player/cmp.posts-player.svelte +2 -1
- package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +2 -0
- package/dist/posts/posts-player/index.d.ts +2 -0
- package/dist/posts/posts-player/index.js +2 -1
- package/dist/posts/posts-player/posts-player-proxy.svelte +2 -1
- package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +3 -1
- package/dist/posts/posts-player/posts-player-view.svelte +132 -34
- package/dist/posts/posts-player/types.d.ts +13 -3
- package/dist/posts/sharing/index.d.ts +1 -0
- package/dist/posts/sharing/index.js +1 -0
- package/dist/posts/sharing/types.d.ts +5 -0
- package/dist/posts/sharing/types.js +1 -0
- package/dist/posts/social-interactions/types.d.ts +0 -1
- package/dist/streams/controls/index.d.ts +1 -0
- package/dist/streams/controls/index.js +1 -0
- package/dist/streams/controls/stream-actions-generator.svelte.d.ts +31 -0
- package/dist/streams/controls/stream-actions-generator.svelte.js +42 -0
- package/dist/streams/index.d.ts +1 -0
- package/dist/streams/index.js +1 -0
- package/dist/streams/layout/cmp.layout.svelte +4 -1
- package/dist/streams/layout/cmp.layout.svelte.d.ts +1 -0
- package/dist/streams/layout/element-views/cmp.short-video-stream-element.svelte +1 -0
- package/dist/streams/layout/models/mapper.js +1 -0
- package/dist/streams/sharing/index.d.ts +1 -0
- package/dist/streams/sharing/index.js +1 -0
- package/dist/streams/sharing/types.d.ts +5 -0
- package/dist/streams/sharing/types.js +1 -0
- package/dist/streams/stream-page-viewer/cmp.stream-page-viewer.svelte +43 -1
- package/dist/streams/stream-page-viewer/cmp.stream-page-viewer.svelte.d.ts +9 -0
- package/dist/streams/streams-player/cmp.streams-player.svelte +2 -1
- package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +2 -0
- package/dist/streams/streams-player/index.d.ts +2 -0
- package/dist/streams/streams-player/index.js +2 -1
- package/dist/streams/streams-player/streams-player-proxy.svelte +2 -1
- package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +2 -0
- package/dist/streams/streams-player/streams-player-view.svelte +150 -34
- package/dist/streams/streams-player/types.d.ts +8 -0
- package/dist/ui/button/resources/button-theme.svelte +2 -4
- package/dist/ui/card-actions/card-action-container.d.ts +2 -0
- package/dist/ui/card-actions/card-action-container.js +17 -0
- package/dist/ui/card-actions/cmp.card-action.svelte +28 -0
- package/dist/ui/card-actions/cmp.card-action.svelte.d.ts +10 -0
- package/dist/ui/card-actions/cmp.card-actions.svelte +71 -0
- package/dist/ui/card-actions/cmp.card-actions.svelte.d.ts +9 -0
- package/dist/ui/card-actions/index.d.ts +4 -0
- package/dist/ui/card-actions/index.js +3 -0
- package/dist/ui/card-actions/types.d.ts +9 -0
- package/dist/ui/card-actions/types.js +1 -0
- package/dist/ui/icon/cmp.icon.svelte +1 -1
- package/dist/ui/player/button/cmp.player-button.svelte +1 -3
- package/dist/ui/player/button/cmp.player-buttons-group.svelte +1 -3
- package/dist/ui/player/button/cmp.responsive-player-buttons-group.svelte +53 -0
- package/dist/ui/player/button/cmp.responsive-player-buttons-group.svelte.d.ts +10 -0
- package/dist/ui/player/button/index.d.ts +1 -0
- package/dist/ui/player/button/index.js +1 -0
- package/dist/{content-player → ui/player/content-player}/cmp.content-player.svelte +7 -29
- package/dist/{content-player → ui/player/content-player}/cmp.content-player.svelte.d.ts +11 -15
- package/dist/ui/player/content-player/content-player-config.svelte.d.ts +29 -0
- package/dist/ui/player/content-player/content-player-config.svelte.js +27 -0
- package/dist/{content-player → ui/player/content-player}/content-player-settings.svelte.d.ts +3 -3
- package/dist/{content-player → ui/player/content-player}/content-player-settings.svelte.js +2 -2
- package/dist/{content-player → ui/player/content-player}/controls-and-attachments.svelte +18 -65
- package/dist/{content-player → ui/player/content-player}/controls-and-attachments.svelte.d.ts +11 -14
- package/dist/{content-player → ui/player/content-player}/overview-panel.svelte +2 -4
- package/dist/{content-player → ui/player/content-player}/overview-panel.svelte.d.ts +5 -14
- package/dist/{content-player → ui/player/content-player}/ui-manager.svelte.d.ts +3 -2
- package/dist/{content-player → ui/player/content-player}/ui-manager.svelte.js +3 -2
- package/dist/ui/player/providers/chunks-player-buffer/player-chunk-item.svelte.d.ts +0 -2
- package/dist/ui/player/providers/chunks-player-buffer/player-chunk-item.svelte.js +1 -3
- package/dist/ui/player/providers/chunks-player-buffer/player-chunk.svelte.d.ts +3 -2
- package/dist/ui/player/providers/chunks-player-buffer/player-chunk.svelte.js +11 -5
- package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.d.ts +3 -0
- package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.js +74 -8
- package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +2 -0
- package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +15 -4
- 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 +27 -5
- package/dist/ui/player/providers/types.d.ts +1 -0
- package/dist/ui/player/slider/cmp.player-slider.svelte.d.ts +5 -14
- package/dist/ui/player/slider-horizontal/cmp.slider.svelte +2 -6
- package/dist/ui/player/slider-horizontal/cmp.slider.svelte.d.ts +5 -12
- package/dist/ui/shadow-dom/cmp.shadow-root.svelte +11 -6
- package/dist/ui/shadow-dom/colors.scss +2 -0
- package/package.json +7 -3
- package/dist/content-player/content-player-config.svelte.d.ts +0 -51
- package/dist/content-player/content-player-config.svelte.js +0 -48
- package/dist/core/analytics.installation-id.d.ts +0 -5
- package/dist/external-api/data-providers/mapper.d.ts +0 -3
- package/dist/external-api/data-providers/mapper.js +0 -18
- package/dist/posts/controls/cmp.controls.svelte +0 -120
- package/dist/posts/controls/cmp.controls.svelte.d.ts +0 -16
- /package/dist/{media-center/categories-following → external-api/data-providers/mocks}/mock-categories-following-handler.svelte.js +0 -0
- /package/dist/{media-center/membership → external-api/data-providers/mocks}/mock-membership-handler.svelte.js +0 -0
- /package/dist/{media-center/navigation → external-api/data-providers/mocks}/mock-navigation-handler.svelte.js +0 -0
- /package/dist/{content-player → ui/player/content-player}/index.d.ts +0 -0
- /package/dist/{content-player → ui/player/content-player}/index.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { IconColor } from '../icon';
|
|
@@ -73,7 +73,7 @@ let { src, color = null } = $props();
|
|
|
73
73
|
stroke: var(--_icon--stroke-color, var(--_icon--color));
|
|
74
74
|
stroke-width: var(--_icon--stroke-width);
|
|
75
75
|
}
|
|
76
|
-
:global([data-theme=
|
|
76
|
+
:global([data-theme="dark"]) .icon :global(path) {
|
|
77
77
|
stroke: var(--_icon--stroke-color, var(--_icon--color));
|
|
78
78
|
stroke-width: var(--_icon--stroke-width);
|
|
79
79
|
}</style>
|
|
@@ -47,6 +47,7 @@ const styles = $derived.by(() => {
|
|
|
47
47
|
color: var(--sc-mc-color--text-white);
|
|
48
48
|
--icon--color: var(--sc-mc-color--icon-overlay);
|
|
49
49
|
--icon--size: 1.75rem;
|
|
50
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
50
51
|
}
|
|
51
52
|
.player-button:hover:not(:disabled) {
|
|
52
53
|
background-color: var(--_player-button--color);
|
|
@@ -63,9 +64,6 @@ const styles = $derived.by(() => {
|
|
|
63
64
|
transform: scale(var(--_player-button--icon-scale));
|
|
64
65
|
transition: 0.3s;
|
|
65
66
|
}
|
|
66
|
-
.player-button {
|
|
67
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
68
|
-
}
|
|
69
67
|
@container (width < 576px) {
|
|
70
68
|
.player-button {
|
|
71
69
|
padding: 0.5rem;
|
|
@@ -47,6 +47,7 @@ const styles = $derived.by(() => {
|
|
|
47
47
|
background: var(--_player-buttons-group--background-color);
|
|
48
48
|
padding: 0.4375rem 0.0625rem;
|
|
49
49
|
pointer-events: auto;
|
|
50
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
50
51
|
}
|
|
51
52
|
.player-buttons-group__action {
|
|
52
53
|
--_player-action--icon-scale: 1;
|
|
@@ -72,9 +73,6 @@ const styles = $derived.by(() => {
|
|
|
72
73
|
transform: scale(var(--_player-action--icon-scale));
|
|
73
74
|
transition: 0.3s;
|
|
74
75
|
}
|
|
75
|
-
.player-buttons-group {
|
|
76
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
77
|
-
}
|
|
78
76
|
@container (width < 576px) {
|
|
79
77
|
.player-buttons-group {
|
|
80
78
|
border-radius: 0.9375rem;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script lang="ts">import { MobilePlayerButtonsGroup, PlayerButtonsGroup, PlayerButton } from './';
|
|
2
|
+
let { scaleEffect = false, activeColor, backgroundColor, actions } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="desktop-controls">
|
|
6
|
+
{#if actions.length > 0}
|
|
7
|
+
{#if actions.length === 1}
|
|
8
|
+
<PlayerButton
|
|
9
|
+
scaleEffect={scaleEffect}
|
|
10
|
+
activeColor={activeColor}
|
|
11
|
+
inactiveColor={backgroundColor}
|
|
12
|
+
icon={actions[0].icon}
|
|
13
|
+
on={{ click: actions[0].callback }} />
|
|
14
|
+
{:else}
|
|
15
|
+
<PlayerButtonsGroup scaleEffect={scaleEffect} activeColor={activeColor} backgroundColor={backgroundColor} actions={actions} />
|
|
16
|
+
{/if}
|
|
17
|
+
{/if}
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<div class="mobile-controls">
|
|
21
|
+
<MobilePlayerButtonsGroup actions={actions} />
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<style>@keyframes fadeIn {
|
|
25
|
+
0% {
|
|
26
|
+
opacity: 1;
|
|
27
|
+
}
|
|
28
|
+
50% {
|
|
29
|
+
opacity: 0.4;
|
|
30
|
+
}
|
|
31
|
+
100% {
|
|
32
|
+
opacity: 1;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
.desktop-controls {
|
|
36
|
+
display: contents;
|
|
37
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
38
|
+
}
|
|
39
|
+
@container (width < 576px) {
|
|
40
|
+
.desktop-controls {
|
|
41
|
+
display: none;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.mobile-controls {
|
|
46
|
+
display: none;
|
|
47
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
48
|
+
}
|
|
49
|
+
@container (width < 576px) {
|
|
50
|
+
.mobile-controls {
|
|
51
|
+
display: contents;
|
|
52
|
+
}
|
|
53
|
+
}</style>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type PlayerButtonDef } from './';
|
|
2
|
+
type Props = {
|
|
3
|
+
activeColor: string | null;
|
|
4
|
+
backgroundColor: string | null;
|
|
5
|
+
actions: PlayerButtonDef[];
|
|
6
|
+
scaleEffect?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare const Cmp: import("svelte").Component<Props, {}, "">;
|
|
9
|
+
type Cmp = ReturnType<typeof Cmp>;
|
|
10
|
+
export default Cmp;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as PlayerButton } from './cmp.player-button.svelte';
|
|
2
2
|
export { default as PlayerButtonsGroup } from './cmp.player-buttons-group.svelte';
|
|
3
3
|
export { default as MobilePlayerButtonsGroup } from './cmp.mobile-player-buttons-group.svelte';
|
|
4
|
+
export { default as ResponsivePlayerButtonsGroup } from './cmp.responsive-player-buttons-group.svelte';
|
|
4
5
|
export type { PlayerButtonDef } from './types';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { default as PlayerButton } from './cmp.player-button.svelte';
|
|
2
2
|
export { default as PlayerButtonsGroup } from './cmp.player-buttons-group.svelte';
|
|
3
3
|
export { default as MobilePlayerButtonsGroup } from './cmp.mobile-player-buttons-group.svelte';
|
|
4
|
+
export { default as ResponsivePlayerButtonsGroup } from './cmp.responsive-player-buttons-group.svelte';
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
<script lang="ts">import { handleEsc } from '
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { SwipeIndicator } from '../ui/swipe-indicator';
|
|
1
|
+
<script lang="ts">import { handleEsc } from '../../../core/document.event-handlers';
|
|
2
|
+
import { Loading } from '../../loading';
|
|
3
|
+
import { PlayerSlider } from '../slider';
|
|
4
|
+
import { SwipeIndicator } from '../../swipe-indicator';
|
|
6
5
|
import { default as ControlsAndAttachments } from './controls-and-attachments.svelte';
|
|
7
6
|
import { default as OverviewPanel } from './overview-panel.svelte';
|
|
8
7
|
import {} from 'svelte';
|
|
9
|
-
let { config,
|
|
8
|
+
let { config, itemActions, itemView, attachmentsView, overviewPanelContent } = $props();
|
|
10
9
|
let everTouched = $state(false);
|
|
11
10
|
let overviewPosition = $state({
|
|
12
11
|
top: 0,
|
|
@@ -114,29 +113,8 @@ const handleSliderMounted = (node) => {
|
|
|
114
113
|
<div class="content-player__slider" use:handleSliderMounted>
|
|
115
114
|
<PlayerSlider buffer={config.playerBuffer} on={config.playerSliderCallbacks}>
|
|
116
115
|
{#snippet children({ item })}
|
|
117
|
-
{@const postModel = config.itemAsPostViewerModel(item)}
|
|
118
116
|
<div class="content-player__content">
|
|
119
|
-
{
|
|
120
|
-
<PostViewer
|
|
121
|
-
model={postModel}
|
|
122
|
-
controlsColors={{ active: config.playerColors.button, inactive: config.playerColors.buttonInactive }}
|
|
123
|
-
trackingParams={config.trackingParams}
|
|
124
|
-
socialInteractionsHandler={config.socialInteractionsHandler}
|
|
125
|
-
enableAttachments={config.uiManager.showPostOverlayAttachments}
|
|
126
|
-
enableControls={config.uiManager.showPostOverlayControls}
|
|
127
|
-
autoplay="on-appearance"
|
|
128
|
-
locale={config.settings.locale}
|
|
129
|
-
on={{
|
|
130
|
-
progress: (progress) => config.callbacks?.videoProgress?.(item.id, postModel.id, progress),
|
|
131
|
-
productClick: (productId) => config.callbacks?.productClick?.(productId, postModel.id),
|
|
132
|
-
productImpression: (productId) => config.callbacks?.productImpression?.(productId, postModel.id),
|
|
133
|
-
adClick: (adId) => config.callbacks?.adClick?.(adId, postModel.id),
|
|
134
|
-
adImpression: (adId) => config.callbacks?.adImpression?.(adId, postModel.id)
|
|
135
|
-
}} />
|
|
136
|
-
{:else if nonPostItemView}
|
|
137
|
-
{@render nonPostItemView({ item })}
|
|
138
|
-
{/if}
|
|
139
|
-
|
|
117
|
+
{@render itemView({ item })}
|
|
140
118
|
{#if uiManager.isMobileView && config.playerBuffer && config.playerBuffer.loaded.length > 1 && !everTouched}
|
|
141
119
|
<SwipeIndicator locale={config.settings.locale} />
|
|
142
120
|
{/if}
|
|
@@ -150,7 +128,7 @@ const handleSliderMounted = (node) => {
|
|
|
150
128
|
{/if}
|
|
151
129
|
</div>
|
|
152
130
|
|
|
153
|
-
<ControlsAndAttachments config={config} hasOverview={!!overviewPanelContent} />
|
|
131
|
+
<ControlsAndAttachments config={config} hasOverview={!!overviewPanelContent} itemActions={itemActions} attachmentsView={attachmentsView} />
|
|
154
132
|
{:else}
|
|
155
133
|
<Loading positionFixedCenter={true} timeout={1000} />
|
|
156
134
|
{/if}
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
+
import type { PlayerButtonDef } from '../button';
|
|
1
2
|
import type { ContentPlayerConfig } from './content-player-config.svelte';
|
|
2
3
|
import { type Snippet } from 'svelte';
|
|
3
|
-
declare
|
|
4
|
+
declare class __sveltets_Render<T extends {
|
|
4
5
|
id: string;
|
|
5
|
-
}>
|
|
6
|
-
props: {
|
|
6
|
+
}> {
|
|
7
|
+
props(): {
|
|
7
8
|
config: ContentPlayerConfig<T>;
|
|
8
|
-
|
|
9
|
+
itemActions: PlayerButtonDef[];
|
|
10
|
+
itemView: Snippet<[{
|
|
9
11
|
item: T;
|
|
10
12
|
}]>;
|
|
13
|
+
attachmentsView?: Snippet<[{
|
|
14
|
+
item: T;
|
|
15
|
+
}]> | undefined;
|
|
11
16
|
overviewPanelContent?: Snippet;
|
|
12
17
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
slots: {};
|
|
16
|
-
events: {};
|
|
17
|
-
};
|
|
18
|
-
declare class __sveltets_Render<T extends {
|
|
19
|
-
id: string;
|
|
20
|
-
}> {
|
|
21
|
-
props(): ReturnType<typeof $$render<T>>['props'];
|
|
22
|
-
events(): ReturnType<typeof $$render<T>>['events'];
|
|
23
|
-
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
18
|
+
events(): {};
|
|
19
|
+
slots(): {};
|
|
24
20
|
bindings(): "";
|
|
25
21
|
exports(): {};
|
|
26
22
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ICloseOrchestrator } from '../close-orchestrator';
|
|
2
|
+
import type { IPlayerBuffer } from '../providers';
|
|
3
|
+
import type { PlayerSliderCallbacks } from '../slider/types';
|
|
4
|
+
import { ContentPlayerSettings } from './content-player-settings.svelte';
|
|
5
|
+
import { ContentPlayerUIManager } from './ui-manager.svelte';
|
|
6
|
+
export declare class ContentPlayerConfig<T extends {
|
|
7
|
+
id: string;
|
|
8
|
+
}> {
|
|
9
|
+
playerBuffer: IPlayerBuffer<T> | null;
|
|
10
|
+
readonly settings: ContentPlayerSettings;
|
|
11
|
+
readonly playerSliderCallbacks: PlayerSliderCallbacks | undefined;
|
|
12
|
+
readonly closeOrchestrator: ICloseOrchestrator;
|
|
13
|
+
readonly uiManager: ContentPlayerUIManager;
|
|
14
|
+
private _trackingParams;
|
|
15
|
+
constructor(init: {
|
|
16
|
+
playerBuffer: IPlayerBuffer<T> | null;
|
|
17
|
+
settings?: ContentPlayerSettings;
|
|
18
|
+
playerSliderCallbacks?: PlayerSliderCallbacks;
|
|
19
|
+
trackingParams?: ContentPlayerTrackingParams | null;
|
|
20
|
+
closeOrchestrator: ICloseOrchestrator;
|
|
21
|
+
});
|
|
22
|
+
get playerColors(): import("../colors").PlayerColors;
|
|
23
|
+
get trackingParams(): ContentPlayerConfig<T>['_trackingParams'];
|
|
24
|
+
updateTrackingParams: (data: ContentPlayerTrackingParams | null) => void;
|
|
25
|
+
}
|
|
26
|
+
export type ContentPlayerTrackingParams = {
|
|
27
|
+
streamId?: string;
|
|
28
|
+
campaignId?: string;
|
|
29
|
+
} | false;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ContentPlayerSettings } from './content-player-settings.svelte';
|
|
2
|
+
import { ContentPlayerUIManager } from './ui-manager.svelte';
|
|
3
|
+
export class ContentPlayerConfig {
|
|
4
|
+
playerBuffer = $state.raw(null);
|
|
5
|
+
settings;
|
|
6
|
+
playerSliderCallbacks;
|
|
7
|
+
closeOrchestrator;
|
|
8
|
+
uiManager = new ContentPlayerUIManager();
|
|
9
|
+
_trackingParams = $state.raw(null);
|
|
10
|
+
constructor(init) {
|
|
11
|
+
const { playerBuffer, trackingParams, settings, playerSliderCallbacks, closeOrchestrator } = init;
|
|
12
|
+
this.playerBuffer = playerBuffer;
|
|
13
|
+
this._trackingParams = trackingParams ?? null;
|
|
14
|
+
this.settings = settings || new ContentPlayerSettings();
|
|
15
|
+
this.playerSliderCallbacks = playerSliderCallbacks;
|
|
16
|
+
this.closeOrchestrator = closeOrchestrator;
|
|
17
|
+
}
|
|
18
|
+
get playerColors() {
|
|
19
|
+
return this.settings.playerColors;
|
|
20
|
+
}
|
|
21
|
+
get trackingParams() {
|
|
22
|
+
return this._trackingParams;
|
|
23
|
+
}
|
|
24
|
+
updateTrackingParams = (data) => {
|
|
25
|
+
this._trackingParams = data ?? null;
|
|
26
|
+
};
|
|
27
|
+
}
|
package/dist/{content-player → ui/player/content-player}/content-player-settings.svelte.d.ts
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Locale } from '
|
|
2
|
-
import { type ThemeValue } from '
|
|
3
|
-
import { PlayerColors } from '../
|
|
1
|
+
import type { Locale } from '../../../core/locale';
|
|
2
|
+
import { type ThemeValue } from '../../../core/theme';
|
|
3
|
+
import { PlayerColors } from '../colors';
|
|
4
4
|
export declare class ContentPlayerSettings {
|
|
5
5
|
locale: Locale;
|
|
6
6
|
showStreamsCloudWatermark: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Theme } from '
|
|
2
|
-
import { PlayerColors } from '../
|
|
1
|
+
import { Theme } from '../../../core/theme';
|
|
2
|
+
import { PlayerColors } from '../colors';
|
|
3
3
|
export class ContentPlayerSettings {
|
|
4
4
|
locale = $state('en');
|
|
5
5
|
showStreamsCloudWatermark = $state(false);
|
|
@@ -1,28 +1,17 @@
|
|
|
1
|
-
<script lang="ts">import { slideHorizontally } from '
|
|
2
|
-
import {
|
|
3
|
-
import { PostControls } from '../posts/controls';
|
|
4
|
-
import { IconColor } from '../ui/icon';
|
|
5
|
-
import { PlayerButton, PlayerButtonsGroup } from '../ui/player/button';
|
|
1
|
+
<script lang="ts">import { slideHorizontally } from '../../../core/transitions';
|
|
2
|
+
import { PlayerButton, ResponsivePlayerButtonsGroup } from '../button';
|
|
6
3
|
import { ContentPlayerConfig } from './content-player-config.svelte';
|
|
7
4
|
import IconCalendarWeekNumbers from '@fluentui/svg-icons/icons/calendar_week_numbers_24_regular.svg?raw';
|
|
8
5
|
import IconChevronDown from '@fluentui/svg-icons/icons/chevron_down_28_regular.svg?raw';
|
|
9
6
|
import IconChevronUp from '@fluentui/svg-icons/icons/chevron_up_28_regular.svg?raw';
|
|
10
7
|
import IconDismiss from '@fluentui/svg-icons/icons/dismiss_28_regular.svg?raw';
|
|
11
|
-
let { config, hasOverview } = $props();
|
|
8
|
+
let { config, hasOverview, itemActions, attachmentsView } = $props();
|
|
12
9
|
const uiManager = config.uiManager;
|
|
13
|
-
let attachmentsCollapsed = $state(false);
|
|
14
10
|
let closeButtonAreaHeight = $state(0);
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
if (!((_a = config.playerBuffer) === null || _a === void 0 ? void 0 : _a.current)) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
return config.itemAsPostViewerModel(config.playerBuffer.current);
|
|
21
|
-
});
|
|
22
|
-
const extraActions = $derived.by(() => {
|
|
23
|
-
const actions = [];
|
|
11
|
+
const allActions = $derived.by(() => {
|
|
12
|
+
const actions = [...itemActions];
|
|
24
13
|
if (hasOverview && uiManager.overviewCanBeShown) {
|
|
25
|
-
actions.
|
|
14
|
+
actions.unshift({
|
|
26
15
|
icon: IconCalendarWeekNumbers,
|
|
27
16
|
callback: () => {
|
|
28
17
|
uiManager.overviewCollapsed = !uiManager.overviewCollapsed;
|
|
@@ -31,9 +20,6 @@ const extraActions = $derived.by(() => {
|
|
|
31
20
|
}
|
|
32
21
|
return actions;
|
|
33
22
|
});
|
|
34
|
-
const changeShowAttachments = () => {
|
|
35
|
-
attachmentsCollapsed = !attachmentsCollapsed;
|
|
36
|
-
};
|
|
37
23
|
const trackAttachmentsPanelSize = (node) => {
|
|
38
24
|
const resizeObserver = new ResizeObserver(([entry]) => {
|
|
39
25
|
uiManager.attachmentsWidth = entry.contentRect.width;
|
|
@@ -72,34 +58,16 @@ const variables = $derived.by(() => {
|
|
|
72
58
|
});
|
|
73
59
|
</script>
|
|
74
60
|
|
|
75
|
-
{#if !uiManager.
|
|
61
|
+
{#if !uiManager.showControlsOverlay}
|
|
76
62
|
<div class="controls-and-attachments" style={variables}>
|
|
77
63
|
<div class="controls-and-attachments__spacer"> </div>
|
|
78
64
|
<div class="controls-and-attachments__left">
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
extraActions={extraActions}
|
|
86
|
-
on={{ attachmentsClicked: changeShowAttachments }} />
|
|
87
|
-
{:else if extraActions.length}
|
|
88
|
-
{#if extraActions.length === 1}
|
|
89
|
-
<PlayerButton
|
|
90
|
-
scaleEffect={true}
|
|
91
|
-
activeColor={config.playerColors.button}
|
|
92
|
-
inactiveColor={config.playerColors.buttonInactive}
|
|
93
|
-
icon={extraActions[0].icon}
|
|
94
|
-
on={{ click: extraActions[0].callback }} />
|
|
95
|
-
{:else}
|
|
96
|
-
<PlayerButtonsGroup
|
|
97
|
-
scaleEffect={true}
|
|
98
|
-
activeColor={config.playerColors.button}
|
|
99
|
-
backgroundColor={config.playerColors.buttonInactive}
|
|
100
|
-
actions={extraActions} />
|
|
101
|
-
{/if}
|
|
102
|
-
{/if}
|
|
65
|
+
<ResponsivePlayerButtonsGroup
|
|
66
|
+
actions={allActions}
|
|
67
|
+
scaleEffect={true}
|
|
68
|
+
activeColor={config.playerColors.button}
|
|
69
|
+
backgroundColor={config.playerColors.buttonInactive} />
|
|
70
|
+
|
|
103
71
|
{#if config.playerBuffer}
|
|
104
72
|
<div
|
|
105
73
|
class="controls-and-attachments__navigation-buttons"
|
|
@@ -122,25 +90,10 @@ const variables = $derived.by(() => {
|
|
|
122
90
|
{/if}
|
|
123
91
|
</div>
|
|
124
92
|
<div class="controls-and-attachments__right" use:trackAttachmentsPanelSize>
|
|
125
|
-
{#if !uiManager.
|
|
126
|
-
{#if
|
|
127
|
-
<div class="controls-and-
|
|
128
|
-
|
|
129
|
-
model={currentItemPostContainer}
|
|
130
|
-
colors={{
|
|
131
|
-
background: config.playerColors.cardBackground,
|
|
132
|
-
price: config.playerColors.price,
|
|
133
|
-
salePrice: config.playerColors.salePrice,
|
|
134
|
-
buttonBackground: config.playerColors.cardButton
|
|
135
|
-
}}
|
|
136
|
-
trackingParams={config.trackingParams}
|
|
137
|
-
locale={config.settings.locale}
|
|
138
|
-
on={{
|
|
139
|
-
productClick: (id) => config.callbacks?.productClick?.(id, currentItemPostContainer.id),
|
|
140
|
-
productImpression: (id) => config.callbacks?.productImpression?.(id, currentItemPostContainer.id),
|
|
141
|
-
adClick: (id) => config.callbacks?.adClick?.(id, currentItemPostContainer.id),
|
|
142
|
-
adImpression: (id) => config.callbacks?.adImpression?.(id, currentItemPostContainer.id)
|
|
143
|
-
}} />
|
|
93
|
+
{#if !uiManager.showAttachmentsOverlay}
|
|
94
|
+
{#if attachmentsView && config.playerBuffer?.current && !config.uiManager.attachmentsCollapsed}
|
|
95
|
+
<div class="controls-and-attachments__attachments" transition:slideHorizontally|local>
|
|
96
|
+
{@render attachmentsView({ item: config.playerBuffer.current })}
|
|
144
97
|
</div>
|
|
145
98
|
{/if}
|
|
146
99
|
{/if}
|
|
@@ -202,7 +155,7 @@ const variables = $derived.by(() => {
|
|
|
202
155
|
align-items: flex-end;
|
|
203
156
|
flex-direction: column;
|
|
204
157
|
}
|
|
205
|
-
.controls-and-
|
|
158
|
+
.controls-and-attachments__attachments {
|
|
206
159
|
flex: 1 1 auto;
|
|
207
160
|
width: var(--_controls-and-attachments--attachments--max-width);
|
|
208
161
|
max-width: var(--_controls-and-attachments--attachments--max-width);
|
package/dist/{content-player → ui/player/content-player}/controls-and-attachments.svelte.d.ts
RENAMED
|
@@ -1,22 +1,19 @@
|
|
|
1
|
+
import { type PlayerButtonDef } from '../button';
|
|
1
2
|
import { ContentPlayerConfig } from './content-player-config.svelte';
|
|
2
|
-
|
|
3
|
+
import type { Snippet } from 'svelte';
|
|
4
|
+
declare class __sveltets_Render<T extends {
|
|
3
5
|
id: string;
|
|
4
|
-
}>
|
|
5
|
-
props: {
|
|
6
|
+
}> {
|
|
7
|
+
props(): {
|
|
6
8
|
config: ContentPlayerConfig<T>;
|
|
7
9
|
hasOverview: boolean;
|
|
10
|
+
itemActions: PlayerButtonDef[];
|
|
11
|
+
attachmentsView?: Snippet<[{
|
|
12
|
+
item: T;
|
|
13
|
+
}]> | undefined;
|
|
8
14
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
slots: {};
|
|
12
|
-
events: {};
|
|
13
|
-
};
|
|
14
|
-
declare class __sveltets_Render<T extends {
|
|
15
|
-
id: string;
|
|
16
|
-
}> {
|
|
17
|
-
props(): ReturnType<typeof $$render<T>>['props'];
|
|
18
|
-
events(): ReturnType<typeof $$render<T>>['events'];
|
|
19
|
-
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
15
|
+
events(): {};
|
|
16
|
+
slots(): {};
|
|
20
17
|
bindings(): "";
|
|
21
18
|
exports(): {};
|
|
22
19
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang="ts">import { slideHorizontally } from '
|
|
1
|
+
<script lang="ts">import { slideHorizontally } from '../../../core/transitions';
|
|
2
2
|
let { config, uiManager, position, children } = $props();
|
|
3
3
|
const handlePanelClick = (e) => {
|
|
4
4
|
e.stopPropagation();
|
|
@@ -59,6 +59,7 @@ const styles = $derived.by(() => {
|
|
|
59
59
|
z-index: 0;
|
|
60
60
|
border-radius: 0.5rem 0 0 0.5rem;
|
|
61
61
|
background: var(--_overview-panel--background);
|
|
62
|
+
/* Set 'container-type: inline-size;' to reference container*/
|
|
62
63
|
}
|
|
63
64
|
.overview-panel__content {
|
|
64
65
|
width: 100%;
|
|
@@ -70,9 +71,6 @@ const styles = $derived.by(() => {
|
|
|
70
71
|
overflow: hidden;
|
|
71
72
|
container-type: inline-size;
|
|
72
73
|
}
|
|
73
|
-
.overview-panel {
|
|
74
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
75
|
-
}
|
|
76
74
|
@container (width < 576px) {
|
|
77
75
|
.overview-panel {
|
|
78
76
|
width: 100%;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { ContentPlayerConfig } from './content-player-config.svelte';
|
|
2
2
|
import type { ContentPlayerUIManager } from './ui-manager.svelte';
|
|
3
3
|
import type { Snippet } from 'svelte';
|
|
4
|
-
declare
|
|
4
|
+
declare class __sveltets_Render<T extends {
|
|
5
5
|
id: string;
|
|
6
|
-
}>
|
|
7
|
-
props: {
|
|
6
|
+
}> {
|
|
7
|
+
props(): {
|
|
8
8
|
config: ContentPlayerConfig<T>;
|
|
9
9
|
uiManager: ContentPlayerUIManager;
|
|
10
10
|
position: {
|
|
@@ -14,17 +14,8 @@ declare function $$render<T extends {
|
|
|
14
14
|
};
|
|
15
15
|
children: Snippet;
|
|
16
16
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
slots: {};
|
|
20
|
-
events: {};
|
|
21
|
-
};
|
|
22
|
-
declare class __sveltets_Render<T extends {
|
|
23
|
-
id: string;
|
|
24
|
-
}> {
|
|
25
|
-
props(): ReturnType<typeof $$render<T>>['props'];
|
|
26
|
-
events(): ReturnType<typeof $$render<T>>['events'];
|
|
27
|
-
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
17
|
+
events(): {};
|
|
18
|
+
slots(): {};
|
|
28
19
|
bindings(): "";
|
|
29
20
|
exports(): {};
|
|
30
21
|
}
|
|
@@ -2,6 +2,7 @@ export declare class ContentPlayerUIManager {
|
|
|
2
2
|
overviewCollapsed: boolean;
|
|
3
3
|
readonly overviewCanBeShown: boolean;
|
|
4
4
|
readonly overviewMaxWidth = 150;
|
|
5
|
+
attachmentsCollapsed: boolean;
|
|
5
6
|
attachmentsWidth: number;
|
|
6
7
|
readonly attachmentsMaxWidth = 176;
|
|
7
8
|
playerTotalWidth: number;
|
|
@@ -9,6 +10,6 @@ export declare class ContentPlayerUIManager {
|
|
|
9
10
|
readonly sidePanelsMaxWidth: number;
|
|
10
11
|
readonly isMobileView: boolean;
|
|
11
12
|
readonly viewInitialized: boolean;
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
showAttachmentsOverlay: boolean;
|
|
14
|
+
showControlsOverlay: boolean;
|
|
14
15
|
}
|
|
@@ -5,6 +5,7 @@ export class ContentPlayerUIManager {
|
|
|
5
5
|
overviewCollapsed = $state(true);
|
|
6
6
|
overviewCanBeShown = $derived.by(() => this.overviewMaxWidth <= this.sidePanelsMaxWidth);
|
|
7
7
|
overviewMaxWidth = OVERLAY_MAX_WIDTH;
|
|
8
|
+
attachmentsCollapsed = $state(false);
|
|
8
9
|
attachmentsWidth = $state(0);
|
|
9
10
|
attachmentsMaxWidth = ATTACHMENTS_MAX_WIDTH;
|
|
10
11
|
playerTotalWidth = $state(0);
|
|
@@ -12,6 +13,6 @@ export class ContentPlayerUIManager {
|
|
|
12
13
|
sidePanelsMaxWidth = $derived.by(() => (this.playerTotalWidth - this.contentViewWidth) / 2);
|
|
13
14
|
isMobileView = $derived.by(() => this.playerTotalWidth <= 576);
|
|
14
15
|
viewInitialized = $derived.by(() => !!this.playerTotalWidth && !!this.contentViewWidth);
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
showAttachmentsOverlay = $derived.by(() => this.viewInitialized && this.attachmentsWidth < ATTACHMENTS_MAX_WIDTH + 10);
|
|
17
|
+
showControlsOverlay = $derived.by(() => this.viewInitialized && this.sidePanelsMaxWidth < SAFE_AREA_SIZE);
|
|
17
18
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
export class PlayerChunkItem {
|
|
2
2
|
model;
|
|
3
3
|
chunkId;
|
|
4
|
-
indexWithinChunk;
|
|
5
4
|
constructor(init) {
|
|
6
|
-
const { model,
|
|
5
|
+
const { model, chunkId } = init;
|
|
7
6
|
this.model = model;
|
|
8
|
-
this.indexWithinChunk = indexWithinChunk;
|
|
9
7
|
this.chunkId = chunkId;
|
|
10
8
|
}
|
|
11
9
|
}
|
|
@@ -4,7 +4,6 @@ export declare class PlayerChunk<TItem extends WithId, TChunk extends WithId> {
|
|
|
4
4
|
readonly model: TChunk;
|
|
5
5
|
readonly items: TItem[];
|
|
6
6
|
readonly chunkItems: PlayerChunkItem<TItem>[];
|
|
7
|
-
readonly chunkIndex: number;
|
|
8
7
|
readonly activeChunkItem: PlayerChunkItem<TItem>;
|
|
9
8
|
readonly isEmpty: boolean;
|
|
10
9
|
isFullyLoaded: boolean;
|
|
@@ -14,7 +13,6 @@ export declare class PlayerChunk<TItem extends WithId, TChunk extends WithId> {
|
|
|
14
13
|
private _itemsLoader;
|
|
15
14
|
constructor(data: {
|
|
16
15
|
chunk: TChunk;
|
|
17
|
-
chunkIndex: number;
|
|
18
16
|
provider: {
|
|
19
17
|
loadChunkItems: (chunkId: string, continuationToken: string | null | undefined) => Promise<{
|
|
20
18
|
items: TItem[];
|
|
@@ -25,7 +23,10 @@ export declare class PlayerChunk<TItem extends WithId, TChunk extends WithId> {
|
|
|
25
23
|
onChunkFullyLoaded: (chunk: PlayerChunk<TItem, TChunk>) => void;
|
|
26
24
|
};
|
|
27
25
|
});
|
|
26
|
+
get isLoading(): boolean;
|
|
27
|
+
get activeItemIndex(): number;
|
|
28
28
|
loadMore: () => Promise<TItem[]>;
|
|
29
29
|
setActiveItemIndex: (index: number, warmUp?: boolean) => Promise<void>;
|
|
30
|
+
mutateChunkItems: (items: PlayerChunkItem<TItem>[]) => void;
|
|
30
31
|
warmUp: () => Promise<void>;
|
|
31
32
|
}
|