@streamscloud/embeddable 5.1.2 → 6.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/mapper.js +1 -1
- package/dist/core/continuation-token.d.ts +1 -0
- package/dist/core/continuation-token.js +3 -0
- package/dist/core/locale.d.ts +0 -1
- package/dist/core/locale.js +0 -12
- package/dist/core/media/media-item-url.service.d.ts +1 -1
- package/dist/core/media/media-item-url.service.js +1 -6
- package/dist/media-center/data-provider/index.d.ts +2 -0
- package/dist/media-center/data-provider/index.js +1 -0
- package/dist/media-center/data-provider/internal-media-center-data-provider.svelte.d.ts +8 -0
- package/dist/media-center/data-provider/internal-media-center-data-provider.svelte.js +44 -0
- package/dist/media-center/data-provider/operations.generated.d.ts +89 -0
- package/dist/media-center/data-provider/operations.generated.js +275 -0
- package/dist/media-center/data-provider/operations.graphql +25 -0
- package/dist/media-center/data-provider/types.d.ts +24 -0
- package/dist/media-center/data-provider/types.js +1 -0
- package/dist/media-center/index.d.ts +1 -0
- package/dist/media-center/index.js +1 -0
- package/dist/media-center/media-center/cmp.media-center.svelte +336 -0
- package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +20 -0
- package/dist/media-center/media-center/index.d.ts +3 -0
- package/dist/media-center/media-center/index.js +2 -0
- package/dist/media-center/media-center/media-center-localization.d.ts +11 -0
- package/dist/media-center/media-center/media-center-localization.js +15 -0
- package/dist/media-center/media-center/overview.svelte +142 -0
- package/dist/media-center/media-center/overview.svelte.d.ts +13 -0
- package/dist/media-center/media-center/short-video-resources-generator.d.ts +8 -0
- package/dist/media-center/media-center/short-video-resources-generator.js +26 -0
- package/dist/media-center/media-center/types.d.ts +10 -0
- package/dist/media-center/media-center/types.js +5 -0
- package/dist/products/product-card/cmp.product-card.svelte +11 -6
- package/dist/products/product-card/mapper.js +3 -3
- package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +118 -0
- package/dist/short-videos/short-video-card/cmp.short-video-card.svelte.d.ts +11 -0
- package/dist/short-videos/short-video-card/index.d.ts +2 -0
- package/dist/short-videos/short-video-card/index.js +1 -0
- package/dist/short-videos/short-video-card/types.d.ts +5 -0
- package/dist/short-videos/short-video-card/types.js +1 -0
- package/dist/short-videos/short-video-viewer/cmp.short-video-controls.svelte +3 -3
- package/dist/short-videos/short-video-viewer/cmp.short-video-controls.svelte.d.ts +2 -2
- package/dist/short-videos/short-video-viewer/cmp.short-video-viewer.svelte +8 -26
- package/dist/short-videos/short-video-viewer/cmp.short-video-viewer.svelte.d.ts +2 -3
- package/dist/short-videos/short-video-viewer/index.d.ts +1 -1
- package/dist/short-videos/short-video-viewer/mapper.js +6 -3
- package/dist/short-videos/short-video-viewer/types.d.ts +8 -6
- package/dist/short-videos/short-video-viewer/ui-manager.svelte.d.ts +0 -5
- package/dist/short-videos/short-video-viewer/ui-manager.svelte.js +0 -11
- package/dist/short-videos/short-videos-player/cmp.short-videos-player.svelte +16 -12
- package/dist/short-videos/short-videos-player/cmp.short-videos-player.svelte.d.ts +5 -15
- package/dist/short-videos/short-videos-player/controls.svelte +34 -3
- package/dist/short-videos/short-videos-player/controls.svelte.d.ts +3 -2
- package/dist/short-videos/short-videos-player/fade-mixins.scss +12 -0
- package/dist/short-videos/short-videos-player/index.d.ts +66 -36
- package/dist/short-videos/short-videos-player/index.js +40 -104
- package/dist/short-videos/short-videos-player/internal-short-video-player-provider.d.ts +17 -0
- package/dist/short-videos/short-videos-player/internal-short-video-player-provider.js +59 -0
- package/dist/short-videos/short-videos-player/operations.generated.d.ts +1 -0
- package/dist/short-videos/short-videos-player/operations.generated.js +2 -1
- package/dist/short-videos/short-videos-player/operations.graphql +1 -0
- package/dist/short-videos/short-videos-player/short-videos-player-view.svelte +36 -55
- package/dist/short-videos/short-videos-player/short-videos-player-view.svelte.d.ts +12 -15
- package/dist/short-videos/short-videos-player/types.d.ts +8 -29
- package/dist/short-videos/short-videos-player/types.js +1 -6
- package/dist/short-videos/short-videos-player/ui-manager.svelte.d.ts +6 -6
- package/dist/short-videos/short-videos-player/ui-manager.svelte.js +28 -16
- package/dist/streams/layout/element-views/cmp.short-video-stream-element.svelte +6 -1
- package/dist/streams/stream-page-viewer/index.d.ts +1 -0
- package/dist/streams/stream-page-viewer/index.js +1 -0
- package/dist/streams/stream-player/controls.svelte +2 -2
- package/dist/streams/stream-player/controls.svelte.d.ts +2 -2
- package/dist/streams/stream-player/index.d.ts +84 -27
- package/dist/streams/stream-player/index.js +46 -48
- package/dist/streams/stream-player/internal-stream-analytics-handler.d.ts +12 -0
- package/dist/streams/stream-player/internal-stream-analytics-handler.js +17 -0
- package/dist/streams/stream-player/internal-stream-player-data-provider.d.ts +10 -0
- package/dist/streams/stream-player/internal-stream-player-data-provider.js +48 -0
- package/dist/streams/stream-player/mapper.js +2 -0
- package/dist/streams/stream-player/operations.generated.d.ts +0 -2
- package/dist/streams/stream-player/operations.generated.js +2 -4
- package/dist/streams/stream-player/operations.graphql +0 -1
- package/dist/streams/stream-player/stream-player-buffer.svelte.d.ts +5 -5
- package/dist/streams/stream-player/stream-player-buffer.svelte.js +12 -27
- package/dist/streams/stream-player/{cmp.stream-player.svelte → stream-player.svelte} +19 -37
- package/dist/streams/stream-player/stream-player.svelte.d.ts +4 -0
- package/dist/streams/stream-player/types.d.ts +40 -0
- package/dist/ui/player/index.d.ts +1 -1
- package/dist/ui/player/player-buffer.svelte.d.ts +3 -3
- package/package.json +5 -1
- package/dist/streams/stream-player/cmp.stream-player.svelte.d.ts +0 -22
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { getOrCreateProfileId } from '../../core/analytics.profile-id';
|
|
11
10
|
import { handleEsc } from '../../core/document.event-handlers';
|
|
12
|
-
import { constructGraphQLUrl, createLocalGQLClient } from '../../core/graphql';
|
|
13
11
|
import { toastrWarning } from '../../core/toastr';
|
|
14
12
|
import { ShortVideoViewer } from '../../short-videos/short-video-viewer';
|
|
15
13
|
import { mapToShortVideoViewerModel } from '../layout/models';
|
|
@@ -19,15 +17,12 @@ import { PlayerSlider } from '../../ui/player';
|
|
|
19
17
|
import { SpotlightLayout } from '../../ui/spotlight-layout';
|
|
20
18
|
import { SwipeIndicator } from '../../ui/swipe-indicator';
|
|
21
19
|
import { default as Controls } from './controls.svelte';
|
|
22
|
-
import { mapToStreamPlayerModel } from './mapper';
|
|
23
|
-
import { GetStreamDocument } from './operations.generated';
|
|
24
20
|
import { default as Overview } from './stream-overview.svelte';
|
|
25
21
|
import { StreamPlayerBuffer } from './stream-player-buffer.svelte';
|
|
26
22
|
import { StreamPlayerLocalization } from './stream-player-localization';
|
|
27
23
|
import { StreamPlayerUiManager } from './ui-manager.svelte';
|
|
28
|
-
import { AppEventsTracker } from '@streamscloud/streams-analytics-collector';
|
|
29
24
|
import { onMount } from 'svelte';
|
|
30
|
-
let { streamId,
|
|
25
|
+
let { streamId, dataProvider, analyticsHandler, localization: localizationInit = 'en', showStreamsCloudWatermark, postSocialInteractionsHandler, on } = $props();
|
|
31
26
|
const localization = $derived(new StreamPlayerLocalization(localizationInit));
|
|
32
27
|
let model = $state(null);
|
|
33
28
|
let buffer = $state.raw(null);
|
|
@@ -54,27 +49,21 @@ const resetInactivityTimer = () => {
|
|
|
54
49
|
}, inactiveTimeSeconds * 1000);
|
|
55
50
|
};
|
|
56
51
|
onMount(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
-
var _a, _b
|
|
52
|
+
var _a, _b;
|
|
58
53
|
uiManager.overviewCollapsed = window && window.innerWidth < window.innerHeight;
|
|
59
54
|
try {
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
if (!((_a = streamPayload.data) === null || _a === void 0 ? void 0 : _a.stream)) {
|
|
55
|
+
const stream = yield dataProvider.getStream(streamId);
|
|
56
|
+
if (!stream) {
|
|
63
57
|
toastrWarning(localization.streamNotFound);
|
|
64
|
-
(
|
|
58
|
+
(_a = on === null || on === void 0 ? void 0 : on.playerClosed) === null || _a === void 0 ? void 0 : _a.call(on);
|
|
65
59
|
return;
|
|
66
60
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
(_c = on === null || on === void 0 ? void 0 : on.streamActivated) === null || _c === void 0 ? void 0 : _c.call(on, {
|
|
70
|
-
ownerId: streamPayload.data.stream.ownerProfile.id,
|
|
71
|
-
title: streamPayload.data.stream.title,
|
|
72
|
-
image: ((_d = streamPayload.data.stream.cover) === null || _d === void 0 ? void 0 : _d.url) || null
|
|
73
|
-
});
|
|
61
|
+
analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.setOrganizationId(stream.organizationId);
|
|
62
|
+
(_b = on === null || on === void 0 ? void 0 : on.streamActivated) === null || _b === void 0 ? void 0 : _b.call(on, { title: stream.title, image: stream.cover });
|
|
74
63
|
// start tracking the stream
|
|
75
|
-
model =
|
|
76
|
-
buffer = new StreamPlayerBuffer({
|
|
77
|
-
|
|
64
|
+
model = stream;
|
|
65
|
+
buffer = new StreamPlayerBuffer({ streamId, dataProvider: dataProvider });
|
|
66
|
+
analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.trackStreamView(stream.id);
|
|
78
67
|
startActivityTracking();
|
|
79
68
|
}
|
|
80
69
|
finally {
|
|
@@ -144,7 +133,7 @@ const onPageActivated = (id) => {
|
|
|
144
133
|
const page = buffer === null || buffer === void 0 ? void 0 : buffer.loaded.find((x) => x.id === id);
|
|
145
134
|
background = (page === null || page === void 0 ? void 0 : page.cover) || null;
|
|
146
135
|
if (page) {
|
|
147
|
-
|
|
136
|
+
analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.trackStreamPageView(id, streamId);
|
|
148
137
|
const currentIndex = buffer === null || buffer === void 0 ? void 0 : buffer.loaded.findIndex((p) => p.id === id);
|
|
149
138
|
if (currentIndex !== undefined && currentIndex > maxPageIndexViewed) {
|
|
150
139
|
maxPageIndexViewed = currentIndex;
|
|
@@ -152,23 +141,23 @@ const onPageActivated = (id) => {
|
|
|
152
141
|
}
|
|
153
142
|
};
|
|
154
143
|
const onProductCardClick = (productId) => {
|
|
155
|
-
|
|
144
|
+
analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.trackStreamProductClicked(productId, streamId);
|
|
156
145
|
};
|
|
157
146
|
const onPlayerClose = () => {
|
|
158
147
|
var _a;
|
|
159
148
|
stopActivityTracking();
|
|
160
|
-
|
|
149
|
+
analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.trackStreamEngagementTime(streamId, totalEngagementTimeSeconds);
|
|
161
150
|
if (buffer && buffer.loaded.length > 0) {
|
|
162
151
|
let scrollDepth = Math.round(((maxPageIndexViewed + 1) / buffer.loaded.length) * 100);
|
|
163
|
-
|
|
152
|
+
analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.trackStreamScrollDepth(streamId, scrollDepth);
|
|
164
153
|
}
|
|
165
|
-
(_a = on === null || on === void 0 ? void 0 : on.
|
|
154
|
+
(_a = on === null || on === void 0 ? void 0 : on.playerClosed) === null || _a === void 0 ? void 0 : _a.call(on);
|
|
166
155
|
};
|
|
167
156
|
const onPageDeactivated = (itemId) => {
|
|
168
|
-
|
|
157
|
+
analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.reportPageVideoViews(itemId, streamId);
|
|
169
158
|
};
|
|
170
159
|
const onProgress = (pageId, videoId, progress) => {
|
|
171
|
-
|
|
160
|
+
analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.trackShortVideoProgress(pageId, videoId, progress, streamId);
|
|
172
161
|
};
|
|
173
162
|
</script>
|
|
174
163
|
|
|
@@ -211,7 +200,7 @@ const onProgress = (pageId, videoId, progress) => {
|
|
|
211
200
|
progress: (progress) => onProgress(item.id, item.shortVideo.id, progress)
|
|
212
201
|
}}
|
|
213
202
|
autoplay="on-appearance"
|
|
214
|
-
socialInteractionsHandler={
|
|
203
|
+
socialInteractionsHandler={postSocialInteractionsHandler}
|
|
215
204
|
localization={localization.shortVideoViewerLocalization}
|
|
216
205
|
showAttachments={uiManager.showShortVideoOverlay}
|
|
217
206
|
showControls={uiManager.showShortVideoOverlay} />
|
|
@@ -239,7 +228,7 @@ const onProgress = (pageId, videoId, progress) => {
|
|
|
239
228
|
buffer={buffer}
|
|
240
229
|
uiManager={uiManager}
|
|
241
230
|
localization={localization}
|
|
242
|
-
|
|
231
|
+
postSocialInteractionsHandler={postSocialInteractionsHandler}
|
|
243
232
|
on={{
|
|
244
233
|
closePlayer: () => onPlayerClose(),
|
|
245
234
|
productClick: (productId: String) => onProductCardClick(productId)
|
|
@@ -296,11 +285,4 @@ const onProgress = (pageId, videoId, progress) => {
|
|
|
296
285
|
.stream-player__content {
|
|
297
286
|
width: 100%;
|
|
298
287
|
height: 100%;
|
|
299
|
-
--short-video-viewer--actions-panel--bottom: 5rem;
|
|
300
|
-
/* Set 'container-type: inline-size;' to reference container*/
|
|
301
|
-
}
|
|
302
|
-
@container (width < 576px) {
|
|
303
|
-
.stream-player__content {
|
|
304
|
-
--short-video-viewer--actions-panel--top: 5rem;
|
|
305
|
-
}
|
|
306
288
|
}</style>
|
|
@@ -1,12 +1,52 @@
|
|
|
1
|
+
import type { Locale } from '../../core/locale';
|
|
2
|
+
import type { IPostSocialInteractionsHandler } from '../../short-videos/short-video-viewer';
|
|
3
|
+
import type { StreamPageViewerModel } from '../stream-page-viewer';
|
|
4
|
+
import type { IStreamPlayerLocalization } from './stream-player-localization';
|
|
1
5
|
export type StreamPlayerModel = {
|
|
2
6
|
id: string;
|
|
3
7
|
title: string;
|
|
8
|
+
cover: string | null;
|
|
4
9
|
subTitle: string | null;
|
|
5
10
|
createdAt: string;
|
|
6
11
|
publishedAt: string | null;
|
|
12
|
+
organizationId: string;
|
|
7
13
|
header: {
|
|
8
14
|
image: string | null;
|
|
9
15
|
name: string;
|
|
10
16
|
};
|
|
11
17
|
pagesCount: number;
|
|
12
18
|
};
|
|
19
|
+
export type StreamPlayerProps = PlayerSettings & {
|
|
20
|
+
dataProvider: IStreamPlayerDataProvider;
|
|
21
|
+
analyticsHandler?: IStreamAnalyticsHandler;
|
|
22
|
+
};
|
|
23
|
+
export type PlayerSettings = {
|
|
24
|
+
streamId: string;
|
|
25
|
+
localization?: IStreamPlayerLocalization | Locale;
|
|
26
|
+
showStreamsCloudWatermark?: boolean;
|
|
27
|
+
postSocialInteractionsHandler?: IPostSocialInteractionsHandler;
|
|
28
|
+
on?: {
|
|
29
|
+
streamActivated?: (data: {
|
|
30
|
+
title: string;
|
|
31
|
+
image: string | null;
|
|
32
|
+
}) => void;
|
|
33
|
+
playerClosed?: () => void;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export interface IStreamPlayerDataProvider {
|
|
37
|
+
getStream: (streamId: string) => Promise<StreamPlayerModel | null>;
|
|
38
|
+
getStreamPages: (streamId: string, continuationToken: string | null | undefined) => Promise<{
|
|
39
|
+
items: StreamPageViewerModel[];
|
|
40
|
+
continuationToken: string | null;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
export interface IStreamAnalyticsHandler {
|
|
44
|
+
setOrganizationId: (organizationId: string) => void;
|
|
45
|
+
trackStreamView: (streamId: string) => void;
|
|
46
|
+
trackStreamPageView: (pageId: string, streamId: string) => void;
|
|
47
|
+
trackStreamProductClicked: (productId: string, streamId: string) => void;
|
|
48
|
+
trackStreamEngagementTime: (streamId: string, engagementTime: number) => void;
|
|
49
|
+
trackStreamScrollDepth: (streamId: string, scrollDepth: number) => void;
|
|
50
|
+
reportPageVideoViews: (videoId: string, streamId: string) => void;
|
|
51
|
+
trackShortVideoProgress: (pageId: string, videoId: string, progress: number, streamId: string) => void;
|
|
52
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export type { IPlayerBuffer } from './types';
|
|
2
|
-
export { PlayerBuffer, type
|
|
2
|
+
export { PlayerBuffer, type IPlayerItemsProvider } from './player-buffer.svelte';
|
|
3
3
|
export { default as PlayerSlider } from './cmp.player-slider.svelte';
|
|
4
4
|
export { preventSliderScroll } from './prevent-slider-scroll';
|
|
@@ -13,16 +13,16 @@ export declare class PlayerBuffer<T extends {
|
|
|
13
13
|
private _loaded;
|
|
14
14
|
private loadMoreFn;
|
|
15
15
|
private isLoading;
|
|
16
|
-
constructor(provider:
|
|
16
|
+
constructor(provider: IPlayerItemsProvider<T>);
|
|
17
17
|
loadNext: () => Promise<void>;
|
|
18
18
|
loadPrevious: () => Promise<void>;
|
|
19
19
|
reset: () => void;
|
|
20
20
|
private warmUpBuffer;
|
|
21
21
|
}
|
|
22
|
-
export
|
|
22
|
+
export interface IPlayerItemsProvider<T> {
|
|
23
23
|
initialData: {
|
|
24
24
|
prefetchedItems: T[];
|
|
25
25
|
startIndex: number;
|
|
26
26
|
};
|
|
27
27
|
loadMore(): Promise<T[]>;
|
|
28
|
-
}
|
|
28
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamscloud/embeddable",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"author": "StreamsCloud",
|
|
5
5
|
"repository": "https://github.com/StreamsCloud/streamscloud-frontend-packages.git",
|
|
6
6
|
"type": "module",
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
"types": "./dist/index.d.ts",
|
|
29
29
|
"svelte": "./dist/index.js"
|
|
30
30
|
},
|
|
31
|
+
"./media-center": {
|
|
32
|
+
"types": "./dist/media-center/index.d.ts",
|
|
33
|
+
"svelte": "./dist/media-center/index.js"
|
|
34
|
+
},
|
|
31
35
|
"./stream-player": {
|
|
32
36
|
"types": "./dist/streams/stream-player/index.d.ts",
|
|
33
37
|
"svelte": "./dist/streams/stream-player/index.js"
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Locale } from '../../core/locale';
|
|
2
|
-
import { type ShortVideoSocialInteractionsHandler } from '../../short-videos/short-video-viewer';
|
|
3
|
-
import { type IStreamPlayerLocalization } from './stream-player-localization';
|
|
4
|
-
type Props = {
|
|
5
|
-
streamId: string;
|
|
6
|
-
localization?: IStreamPlayerLocalization | Locale;
|
|
7
|
-
graphqlOrigin?: string;
|
|
8
|
-
showStreamsCloudWatermark?: boolean;
|
|
9
|
-
shortVideoSocialInteractionsHandler?: ShortVideoSocialInteractionsHandler;
|
|
10
|
-
initiator?: string;
|
|
11
|
-
on?: {
|
|
12
|
-
closePlayer?: () => void;
|
|
13
|
-
streamActivated?: (data: {
|
|
14
|
-
ownerId: string;
|
|
15
|
-
title: string;
|
|
16
|
-
image: string | null;
|
|
17
|
-
}) => void;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
declare const Cmp: import("svelte").Component<Props, {}, "">;
|
|
21
|
-
type Cmp = ReturnType<typeof Cmp>;
|
|
22
|
-
export default Cmp;
|