@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.
Files changed (89) hide show
  1. package/dist/ads/ad-card/mapper.js +1 -1
  2. package/dist/core/continuation-token.d.ts +1 -0
  3. package/dist/core/continuation-token.js +3 -0
  4. package/dist/core/locale.d.ts +0 -1
  5. package/dist/core/locale.js +0 -12
  6. package/dist/core/media/media-item-url.service.d.ts +1 -1
  7. package/dist/core/media/media-item-url.service.js +1 -6
  8. package/dist/media-center/data-provider/index.d.ts +2 -0
  9. package/dist/media-center/data-provider/index.js +1 -0
  10. package/dist/media-center/data-provider/internal-media-center-data-provider.svelte.d.ts +8 -0
  11. package/dist/media-center/data-provider/internal-media-center-data-provider.svelte.js +44 -0
  12. package/dist/media-center/data-provider/operations.generated.d.ts +89 -0
  13. package/dist/media-center/data-provider/operations.generated.js +275 -0
  14. package/dist/media-center/data-provider/operations.graphql +25 -0
  15. package/dist/media-center/data-provider/types.d.ts +24 -0
  16. package/dist/media-center/data-provider/types.js +1 -0
  17. package/dist/media-center/index.d.ts +1 -0
  18. package/dist/media-center/index.js +1 -0
  19. package/dist/media-center/media-center/cmp.media-center.svelte +336 -0
  20. package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +20 -0
  21. package/dist/media-center/media-center/index.d.ts +3 -0
  22. package/dist/media-center/media-center/index.js +2 -0
  23. package/dist/media-center/media-center/media-center-localization.d.ts +11 -0
  24. package/dist/media-center/media-center/media-center-localization.js +15 -0
  25. package/dist/media-center/media-center/overview.svelte +142 -0
  26. package/dist/media-center/media-center/overview.svelte.d.ts +13 -0
  27. package/dist/media-center/media-center/short-video-resources-generator.d.ts +8 -0
  28. package/dist/media-center/media-center/short-video-resources-generator.js +26 -0
  29. package/dist/media-center/media-center/types.d.ts +10 -0
  30. package/dist/media-center/media-center/types.js +5 -0
  31. package/dist/products/product-card/cmp.product-card.svelte +11 -6
  32. package/dist/products/product-card/mapper.js +3 -3
  33. package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +118 -0
  34. package/dist/short-videos/short-video-card/cmp.short-video-card.svelte.d.ts +11 -0
  35. package/dist/short-videos/short-video-card/index.d.ts +2 -0
  36. package/dist/short-videos/short-video-card/index.js +1 -0
  37. package/dist/short-videos/short-video-card/types.d.ts +5 -0
  38. package/dist/short-videos/short-video-card/types.js +1 -0
  39. package/dist/short-videos/short-video-viewer/cmp.short-video-controls.svelte +3 -3
  40. package/dist/short-videos/short-video-viewer/cmp.short-video-controls.svelte.d.ts +2 -2
  41. package/dist/short-videos/short-video-viewer/cmp.short-video-viewer.svelte +8 -26
  42. package/dist/short-videos/short-video-viewer/cmp.short-video-viewer.svelte.d.ts +2 -3
  43. package/dist/short-videos/short-video-viewer/index.d.ts +1 -1
  44. package/dist/short-videos/short-video-viewer/mapper.js +6 -3
  45. package/dist/short-videos/short-video-viewer/types.d.ts +8 -6
  46. package/dist/short-videos/short-video-viewer/ui-manager.svelte.d.ts +0 -5
  47. package/dist/short-videos/short-video-viewer/ui-manager.svelte.js +0 -11
  48. package/dist/short-videos/short-videos-player/cmp.short-videos-player.svelte +16 -12
  49. package/dist/short-videos/short-videos-player/cmp.short-videos-player.svelte.d.ts +5 -15
  50. package/dist/short-videos/short-videos-player/controls.svelte +34 -3
  51. package/dist/short-videos/short-videos-player/controls.svelte.d.ts +3 -2
  52. package/dist/short-videos/short-videos-player/fade-mixins.scss +12 -0
  53. package/dist/short-videos/short-videos-player/index.d.ts +66 -36
  54. package/dist/short-videos/short-videos-player/index.js +40 -104
  55. package/dist/short-videos/short-videos-player/internal-short-video-player-provider.d.ts +17 -0
  56. package/dist/short-videos/short-videos-player/internal-short-video-player-provider.js +59 -0
  57. package/dist/short-videos/short-videos-player/operations.generated.d.ts +1 -0
  58. package/dist/short-videos/short-videos-player/operations.generated.js +2 -1
  59. package/dist/short-videos/short-videos-player/operations.graphql +1 -0
  60. package/dist/short-videos/short-videos-player/short-videos-player-view.svelte +36 -55
  61. package/dist/short-videos/short-videos-player/short-videos-player-view.svelte.d.ts +12 -15
  62. package/dist/short-videos/short-videos-player/types.d.ts +8 -29
  63. package/dist/short-videos/short-videos-player/types.js +1 -6
  64. package/dist/short-videos/short-videos-player/ui-manager.svelte.d.ts +6 -6
  65. package/dist/short-videos/short-videos-player/ui-manager.svelte.js +28 -16
  66. package/dist/streams/layout/element-views/cmp.short-video-stream-element.svelte +6 -1
  67. package/dist/streams/stream-page-viewer/index.d.ts +1 -0
  68. package/dist/streams/stream-page-viewer/index.js +1 -0
  69. package/dist/streams/stream-player/controls.svelte +2 -2
  70. package/dist/streams/stream-player/controls.svelte.d.ts +2 -2
  71. package/dist/streams/stream-player/index.d.ts +84 -27
  72. package/dist/streams/stream-player/index.js +46 -48
  73. package/dist/streams/stream-player/internal-stream-analytics-handler.d.ts +12 -0
  74. package/dist/streams/stream-player/internal-stream-analytics-handler.js +17 -0
  75. package/dist/streams/stream-player/internal-stream-player-data-provider.d.ts +10 -0
  76. package/dist/streams/stream-player/internal-stream-player-data-provider.js +48 -0
  77. package/dist/streams/stream-player/mapper.js +2 -0
  78. package/dist/streams/stream-player/operations.generated.d.ts +0 -2
  79. package/dist/streams/stream-player/operations.generated.js +2 -4
  80. package/dist/streams/stream-player/operations.graphql +0 -1
  81. package/dist/streams/stream-player/stream-player-buffer.svelte.d.ts +5 -5
  82. package/dist/streams/stream-player/stream-player-buffer.svelte.js +12 -27
  83. package/dist/streams/stream-player/{cmp.stream-player.svelte → stream-player.svelte} +19 -37
  84. package/dist/streams/stream-player/stream-player.svelte.d.ts +4 -0
  85. package/dist/streams/stream-player/types.d.ts +40 -0
  86. package/dist/ui/player/index.d.ts +1 -1
  87. package/dist/ui/player/player-buffer.svelte.d.ts +3 -3
  88. package/package.json +5 -1
  89. 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, graphqlOrigin, localization: localizationInit = 'en', showStreamsCloudWatermark, shortVideoSocialInteractionsHandler, initiator, on } = $props();
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, _c, _d;
52
+ var _a, _b;
58
53
  uiManager.overviewCollapsed = window && window.innerWidth < window.innerHeight;
59
54
  try {
60
- const graphql = createLocalGQLClient(graphqlOrigin, { 'x-initiator': initiator !== null && initiator !== void 0 ? initiator : 'player/stream' });
61
- const streamPayload = yield graphql.query(GetStreamDocument, { id: streamId }).toPromise();
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
- (_b = on === null || on === void 0 ? void 0 : on.closePlayer) === null || _b === void 0 ? void 0 : _b.call(on);
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
- AppEventsTracker.setEndpoint(constructGraphQLUrl(graphqlOrigin));
68
- AppEventsTracker.setProfileId(getOrCreateProfileId());
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 = mapToStreamPlayerModel(streamPayload.data.stream);
76
- buffer = new StreamPlayerBuffer({ graphql, streamId });
77
- AppEventsTracker.trackStreamView(streamPayload.data.stream.id);
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
- AppEventsTracker.trackStreamPageView(id, streamId);
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
- AppEventsTracker.trackStreamProductClicked(productId, streamId);
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
- AppEventsTracker.trackStreamEngagementTime(streamId, totalEngagementTimeSeconds);
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
- AppEventsTracker.trackStreamScrollDepth(streamId, scrollDepth);
152
+ analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.trackStreamScrollDepth(streamId, scrollDepth);
164
153
  }
165
- (_a = on === null || on === void 0 ? void 0 : on.closePlayer) === null || _a === void 0 ? void 0 : _a.call(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
- AppEventsTracker.reportPageVideoViews(itemId, streamId);
157
+ analyticsHandler === null || analyticsHandler === void 0 ? void 0 : analyticsHandler.reportPageVideoViews(itemId, streamId);
169
158
  };
170
159
  const onProgress = (pageId, videoId, progress) => {
171
- AppEventsTracker.trackShortVideoProgress(pageId, videoId, progress, streamId);
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={shortVideoSocialInteractionsHandler}
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
- shortVideoSocialInteractionsHandler={shortVideoSocialInteractionsHandler}
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>
@@ -0,0 +1,4 @@
1
+ import type { StreamPlayerProps } from './types';
2
+ declare const StreamPlayer: import("svelte").Component<StreamPlayerProps, {}, "">;
3
+ type StreamPlayer = ReturnType<typeof StreamPlayer>;
4
+ export default StreamPlayer;
@@ -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 PlayerItemsProvider } from './player-buffer.svelte';
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: PlayerItemsProvider<T>);
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 type PlayerItemsProvider<T> = {
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": "5.1.2",
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;