@streamscloud/embeddable 11.0.0 → 12.1.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 (174) hide show
  1. package/dist/ads/ad-card/cmp.ad-card.svelte +4 -4
  2. package/dist/ads/ad-card/cmp.ad-card.svelte.d.ts +2 -0
  3. package/dist/content-player/cmp.content-player.svelte +63 -128
  4. package/dist/content-player/content-player-config.svelte.d.ts +3 -10
  5. package/dist/content-player/content-player-config.svelte.js +3 -21
  6. package/dist/content-player/content-player-settings.d.ts +7 -21
  7. package/dist/content-player/content-player-settings.js +0 -4
  8. package/dist/content-player/controls-and-attachments.svelte +39 -5
  9. package/dist/content-player/overview-panel.svelte +14 -6
  10. package/dist/content-player/overview-panel.svelte.d.ts +5 -1
  11. package/dist/content-player/ui-manager.svelte.d.ts +0 -2
  12. package/dist/content-player/ui-manager.svelte.js +0 -2
  13. package/dist/media-center/config/internal-media-center-config.d.ts +7 -3
  14. package/dist/media-center/config/internal-media-center-config.js +28 -24
  15. package/dist/media-center/config/operations.generated.d.ts +36 -23
  16. package/dist/media-center/config/operations.generated.js +53 -33
  17. package/dist/media-center/config/operations.graphql +34 -21
  18. package/dist/media-center/config/types.d.ts +13 -2
  19. package/dist/media-center/media-center/cmp.media-center.svelte +195 -149
  20. package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +2 -19
  21. package/dist/media-center/media-center/discover/data-loading.d.ts +8 -0
  22. package/dist/media-center/media-center/discover/data-loading.js +35 -0
  23. package/dist/media-center/media-center/discover/discover-header-localization.d.ts +6 -0
  24. package/dist/media-center/media-center/discover/discover-header-localization.js +15 -0
  25. package/dist/media-center/media-center/discover/discover-header.svelte +214 -0
  26. package/dist/media-center/media-center/discover/discover-header.svelte.d.ts +9 -0
  27. package/dist/media-center/media-center/discover/discover-view-handler.svelte.d.ts +28 -0
  28. package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +101 -0
  29. package/dist/media-center/media-center/discover/discover-view-localization.d.ts +6 -0
  30. package/dist/media-center/media-center/discover/discover-view-localization.js +15 -0
  31. package/dist/media-center/media-center/discover/discover-view.svelte +238 -0
  32. package/dist/media-center/media-center/discover/{discover-panel.svelte.d.ts → discover-view.svelte.d.ts} +4 -4
  33. package/dist/media-center/media-center/discover/index.d.ts +2 -2
  34. package/dist/media-center/media-center/discover/index.js +2 -2
  35. package/dist/media-center/media-center/discover/types.svelte.d.ts +20 -0
  36. package/dist/media-center/media-center/discover/types.svelte.js +20 -0
  37. package/dist/media-center/media-center/feed/feed-handler.svelte.d.ts +50 -0
  38. package/dist/media-center/media-center/feed/feed-handler.svelte.js +84 -0
  39. package/dist/media-center/media-center/feed/feed-providers-generator.d.ts +11 -0
  40. package/dist/media-center/media-center/feed/feed-providers-generator.js +79 -0
  41. package/dist/media-center/media-center/feed/index.d.ts +1 -0
  42. package/dist/media-center/media-center/feed/index.js +1 -0
  43. package/dist/media-center/media-center/feed/types.d.ts +12 -0
  44. package/dist/media-center/media-center/handlers/categories-handler.svelte.d.ts +29 -10
  45. package/dist/media-center/media-center/handlers/categories-handler.svelte.js +25 -7
  46. package/dist/media-center/media-center/handlers/index.d.ts +2 -1
  47. package/dist/media-center/media-center/handlers/index.js +1 -1
  48. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +19 -0
  49. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +26 -0
  50. package/dist/media-center/media-center/header-footer/media-center-footer.svelte +4 -8
  51. package/dist/media-center/media-center/header-footer/media-center-header-localization.d.ts +1 -0
  52. package/dist/media-center/media-center/header-footer/media-center-header-localization.js +6 -0
  53. package/dist/media-center/media-center/header-footer/media-center-header-mobile.svelte +25 -36
  54. package/dist/media-center/media-center/header-footer/media-center-header-mobile.svelte.d.ts +2 -1
  55. package/dist/media-center/media-center/header-footer/media-center-header.svelte +14 -11
  56. package/dist/media-center/media-center/header-footer/media-center-header.svelte.d.ts +1 -2
  57. package/dist/media-center/media-center/media-center-context.svelte.d.ts +31 -13
  58. package/dist/media-center/media-center/media-center-context.svelte.js +71 -35
  59. package/dist/media-center/media-center/menu/menu-localization.d.ts +2 -11
  60. package/dist/media-center/media-center/menu/menu-localization.js +6 -45
  61. package/dist/media-center/media-center/menu/menu.svelte +94 -93
  62. package/dist/media-center/media-center/menu/menu.svelte.d.ts +1 -1
  63. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.d.ts +1 -1
  64. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.js +0 -3
  65. package/dist/media-center/media-center/moments/cmp.moments-circle.svelte +41 -0
  66. package/dist/media-center/media-center/moments/cmp.moments-circle.svelte.d.ts +7 -0
  67. package/dist/media-center/media-center/moments/index.d.ts +1 -0
  68. package/dist/media-center/media-center/moments/index.js +1 -0
  69. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.d.ts +1 -1
  70. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.js +1 -1
  71. package/dist/media-center/media-center/types.d.ts +44 -1
  72. package/dist/media-page/index.d.ts +121 -0
  73. package/dist/media-page/index.js +43 -0
  74. package/dist/posts/attachments/cmp.attachments.svelte +1 -0
  75. package/dist/posts/controls/cmp.controls.svelte +50 -13
  76. package/dist/posts/data-loaders/operations.generated.d.ts +4 -0
  77. package/dist/posts/data-loaders/operations.generated.js +6 -2
  78. package/dist/posts/model/types.d.ts +2 -0
  79. package/dist/posts/post-viewer/cmp.post-viewer.svelte +26 -18
  80. package/dist/posts/post-viewer/mapper.js +2 -0
  81. package/dist/posts/post-viewer/operations.generated.d.ts +2 -0
  82. package/dist/posts/post-viewer/operations.generated.js +3 -1
  83. package/dist/posts/post-viewer/operations.graphql +2 -0
  84. package/dist/posts/post-viewer/post-texts.svelte +3 -3
  85. package/dist/posts/posts-player/cmp.posts-player.svelte +20 -6
  86. package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +18 -2
  87. package/dist/posts/posts-player/index.d.ts +18 -3
  88. package/dist/posts/posts-player/index.js +42 -89
  89. package/dist/posts/posts-player/posts-player-proxy.svelte +19 -0
  90. package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +22 -0
  91. package/dist/posts/posts-player/posts-player-view.svelte +20 -34
  92. package/dist/posts/posts-player/posts-player-view.svelte.d.ts +2 -6
  93. package/dist/posts/posts-player/types.d.ts +19 -6
  94. package/dist/products/product-card/cmp.product-card.svelte +5 -5
  95. package/dist/products/product-card/cmp.product-card.svelte.d.ts +1 -1
  96. package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +160 -19
  97. package/dist/short-videos/short-video-card/cmp.short-video-card.svelte.d.ts +2 -1
  98. package/dist/short-videos/short-video-card/localization.d.ts +5 -0
  99. package/dist/short-videos/short-video-card/localization.js +13 -0
  100. package/dist/short-videos/short-video-card/types.d.ts +4 -0
  101. package/dist/short-videos/short-videos-player/index.js +26 -33
  102. package/dist/streams/layout/element-views/cmp.stream-element.svelte +2 -2
  103. package/dist/streams/layout/element-views/cmp.text-ref-stream-element.svelte +7 -3
  104. package/dist/streams/layout/element-views/cmp.text-ref-stream-element.svelte.d.ts +2 -0
  105. package/dist/streams/layout/element-views/cmp.text-stream-element.svelte +7 -3
  106. package/dist/streams/layout/element-views/cmp.text-stream-element.svelte.d.ts +2 -0
  107. package/dist/streams/layout/element-views/price-element-view.svelte +2 -2
  108. package/dist/streams/layout/element-views/price-stream-element-localization.d.ts +1 -1
  109. package/dist/streams/layout/element-views/price-stream-element-localization.js +2 -2
  110. package/dist/streams/layout/models/mapper.js +2 -0
  111. package/dist/streams/streams-player/index.d.ts +21 -2
  112. package/dist/streams/streams-player/index.js +49 -24
  113. package/dist/streams/streams-player/stream-overview.svelte +1 -1
  114. package/dist/streams/streams-player/streams-player-buffer.svelte.d.ts +1 -3
  115. package/dist/streams/streams-player/streams-player-buffer.svelte.js +2 -2
  116. package/dist/streams/streams-player/streams-player-view.svelte +25 -21
  117. package/dist/streams/streams-player/streams-player-view.svelte.d.ts +1 -5
  118. package/dist/streams/streams-player/types.d.ts +18 -4
  119. package/dist/ui/line-clamp/cmp.line-clamp-auto.svelte +119 -0
  120. package/dist/ui/line-clamp/cmp.line-clamp-auto.svelte.d.ts +10 -0
  121. package/dist/ui/line-clamp/cmp.line-clamp.svelte +44 -72
  122. package/dist/ui/line-clamp/cmp.line-clamp.svelte.d.ts +3 -4
  123. package/dist/ui/line-clamp/index.d.ts +1 -0
  124. package/dist/ui/line-clamp/index.js +1 -0
  125. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte +44 -0
  126. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte.d.ts +7 -0
  127. package/dist/ui/player/button/cmp.player-button.svelte +0 -1
  128. package/dist/ui/player/button/cmp.player-buttons-group.svelte +15 -11
  129. package/dist/ui/player/button/cmp.player-buttons-group.svelte.d.ts +1 -1
  130. package/dist/ui/player/button/index.d.ts +1 -0
  131. package/dist/ui/player/button/index.js +1 -0
  132. package/dist/ui/player/button/types.d.ts +0 -2
  133. package/dist/ui/player/close-orchestrator/close-orchestrator.svelte.d.ts +18 -0
  134. package/dist/ui/player/close-orchestrator/close-orchestrator.svelte.js +58 -0
  135. package/dist/ui/player/close-orchestrator/index.d.ts +2 -0
  136. package/dist/ui/player/close-orchestrator/index.js +1 -0
  137. package/dist/ui/player/close-orchestrator/types.d.ts +9 -0
  138. package/dist/ui/player/close-orchestrator/types.js +1 -0
  139. package/dist/ui/player/colors/index.d.ts +1 -0
  140. package/dist/ui/player/colors/index.js +1 -0
  141. package/dist/ui/player/colors/player-colors.d.ts +11 -0
  142. package/dist/ui/player/colors/player-colors.js +1 -0
  143. package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.d.ts +2 -6
  144. package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.js +11 -11
  145. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +2 -3
  146. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +5 -5
  147. package/dist/ui/player/providers/default-feed-player-buffer.svelte.d.ts +3 -4
  148. package/dist/ui/player/providers/default-feed-player-buffer.svelte.js +16 -9
  149. package/dist/ui/player/providers/service.d.ts +2 -0
  150. package/dist/ui/player/providers/service.js +13 -0
  151. package/dist/ui/player/providers/types.d.ts +1 -0
  152. package/dist/ui/with-background/cmp.with-background.svelte +86 -0
  153. package/dist/ui/with-background/cmp.with-background.svelte.d.ts +10 -0
  154. package/dist/ui/with-background/index.d.ts +1 -0
  155. package/dist/ui/with-background/index.js +1 -0
  156. package/package.json +5 -1
  157. package/dist/content-player/fade-mixins.scss +0 -12
  158. package/dist/content-player/header.svelte +0 -15
  159. package/dist/content-player/header.svelte.d.ts +0 -28
  160. package/dist/media-center/media-center/discover/discover-panel-handler.svelte.d.ts +0 -31
  161. package/dist/media-center/media-center/discover/discover-panel-handler.svelte.js +0 -94
  162. package/dist/media-center/media-center/discover/discover-panel-localization.d.ts +0 -19
  163. package/dist/media-center/media-center/discover/discover-panel-localization.js +0 -78
  164. package/dist/media-center/media-center/discover/discover-panel.svelte +0 -142
  165. package/dist/media-center/media-center/handlers/feed-handler.svelte.d.ts +0 -6
  166. package/dist/media-center/media-center/handlers/feed-handler.svelte.js +0 -12
  167. package/dist/media-center/media-center/providers/index.d.ts +0 -2
  168. package/dist/media-center/media-center/providers/index.js +0 -2
  169. package/dist/media-center/media-center/providers/post-player-provider-generator.d.ts +0 -8
  170. package/dist/media-center/media-center/providers/post-player-provider-generator.js +0 -32
  171. package/dist/media-center/media-center/providers/streams-player-provider-generator.d.ts +0 -8
  172. package/dist/media-center/media-center/providers/streams-player-provider-generator.js +0 -36
  173. package/dist/media-center/model/types.d.ts +0 -17
  174. /package/dist/media-center/{model → media-center/feed}/types.js +0 -0
@@ -1,31 +0,0 @@
1
- import type { TrackingParams } from '../../../marketing-tracking';
2
- import type { IMediaCenterConfig } from '../../config/types';
3
- import type { PostPlayerModel } from '../../../posts/posts-player/types';
4
- import type { ProductCardModel } from '../../../products/product-card';
5
- import type { StreamPlayerModel } from '../../../streams/streams-player/types';
6
- export declare class DiscoverPanelHandler {
7
- private readonly config;
8
- private _activated;
9
- private _state;
10
- private _streams;
11
- private _shortVideos;
12
- private _products;
13
- constructor(config: IMediaCenterConfig | null);
14
- get streamSectionItems(): StreamPlayerModel[];
15
- get shortVideoSectionItems(): ShortVideoSectionItemType[];
16
- get activated(): boolean;
17
- get active(): boolean;
18
- get loading(): boolean;
19
- activate: () => Promise<void>;
20
- deactivate: () => void;
21
- private _uniqueById;
22
- }
23
- type ShortVideoSectionItemType = {
24
- kind: 'video';
25
- data: PostPlayerModel;
26
- } | {
27
- kind: 'product';
28
- data: ProductCardModel;
29
- trackingParams: TrackingParams;
30
- };
31
- export {};
@@ -1,94 +0,0 @@
1
- import { PostType } from '../../../core/enums';
2
- export class DiscoverPanelHandler {
3
- config;
4
- _activated = $state(false);
5
- _state = $state('not-initialized');
6
- _streams = $state.raw([]);
7
- _shortVideos = $state.raw([]);
8
- _products = $state.raw([]);
9
- constructor(config) {
10
- this.config = config;
11
- }
12
- get streamSectionItems() {
13
- return this._streams;
14
- }
15
- get shortVideoSectionItems() {
16
- const pattern = ['video', 'product', 'video', 'product', 'video'];
17
- const vids = [...this._shortVideos];
18
- const prods = [...this._products];
19
- const itemsLimit = 5;
20
- const result = [];
21
- // fill according to pattern, leaving empty positions if not enough items
22
- for (let i = 0; i < itemsLimit; i++) {
23
- const want = pattern[i];
24
- if (want === 'video' && vids.length > 0) {
25
- result.push({ kind: 'video', data: vids.shift() });
26
- }
27
- else if (want === 'product' && prods.length > 0) {
28
- const productModel = prods.shift();
29
- const shortVideoId = this._shortVideos.find((v) => v.products.some((p) => p.id === productModel.id))?.id;
30
- result.push({ kind: 'product', data: productModel, trackingParams: { shortVideoId } });
31
- }
32
- else {
33
- // temporary "empty" position - will fill later
34
- result.push(null);
35
- }
36
- }
37
- // fill empty positions with remaining items
38
- for (let i = 0; i < result.length; i++) {
39
- if (!result[i]) {
40
- if (vids.length > 0) {
41
- result[i] = { kind: 'video', data: vids.shift() };
42
- }
43
- else if (prods.length > 0) {
44
- const productModel = prods.shift();
45
- const shortVideoId = this._shortVideos.find((v) => v.products.some((p) => p.id === productModel.id))?.id;
46
- result[i] = { kind: 'product', data: productModel, trackingParams: { shortVideoId } };
47
- }
48
- }
49
- }
50
- return result.filter(Boolean);
51
- }
52
- get activated() {
53
- return this._activated;
54
- }
55
- get active() {
56
- return this._activated && this._state === 'ready';
57
- }
58
- get loading() {
59
- return this._activated && this._state === 'loading';
60
- }
61
- activate = async () => {
62
- if (!this.config) {
63
- return;
64
- }
65
- this._activated = true;
66
- if (this._state === 'not-initialized') {
67
- this._state = 'loading';
68
- try {
69
- const shortVideosResponse = await this.config.postsPlayer.getPostsCursor({ filter: { types: [PostType.ShortVideo] }, limit: 5 });
70
- const streamsResponse = await this.config.streamPlayer.getStreamsCursor({ filter: {}, limit: 5 });
71
- this._shortVideos = shortVideosResponse.items;
72
- this._products = this._uniqueById(shortVideosResponse.items.flatMap((i) => i.products)).slice(0, 2);
73
- this._streams = streamsResponse.items;
74
- }
75
- finally {
76
- this._state = 'ready';
77
- }
78
- }
79
- };
80
- deactivate = () => {
81
- this._activated = false;
82
- };
83
- _uniqueById = (arr) => {
84
- const seen = new Set();
85
- const res = [];
86
- for (const item of arr) {
87
- if (!seen.has(item.id)) {
88
- seen.add(item.id);
89
- res.push(item);
90
- }
91
- }
92
- return res;
93
- };
94
- }
@@ -1,19 +0,0 @@
1
- import { type Locale } from '../../../core/locale';
2
- export declare class DiscoverPanelLocalization {
3
- buttons: {
4
- cart: string;
5
- discover: string;
6
- feed: string;
7
- login: string;
8
- moments: string;
9
- webpage: string;
10
- };
11
- shortVideosSectionTitle: string;
12
- interestsSectionTitle: string;
13
- latestStreamsSectionTitle: string;
14
- popularStreamsSectionTitle: string;
15
- overviewLabel: string;
16
- membersLabel: (count: number) => string;
17
- locale: Locale;
18
- constructor(locale: Locale);
19
- }
@@ -1,78 +0,0 @@
1
- import {} from '../../../core/locale';
2
- export class DiscoverPanelLocalization {
3
- buttons;
4
- shortVideosSectionTitle;
5
- interestsSectionTitle;
6
- latestStreamsSectionTitle;
7
- popularStreamsSectionTitle;
8
- overviewLabel;
9
- membersLabel;
10
- locale;
11
- constructor(locale) {
12
- this.shortVideosSectionTitle = loc.shortVideosSectionTitle[locale];
13
- this.interestsSectionTitle = loc.interestsSectionTitle[locale];
14
- this.latestStreamsSectionTitle = loc.streamsSectionTitle[locale];
15
- this.popularStreamsSectionTitle = loc.popularStreamsSectionTitle[locale];
16
- this.overviewLabel = loc.overviewLabel[locale];
17
- this.buttons = {
18
- cart: loc.cartButton[locale],
19
- discover: loc.discoverButton[locale],
20
- feed: loc.feedButton[locale],
21
- login: loc.loginButton[locale],
22
- moments: loc.momentsButton[locale],
23
- webpage: loc.webpageButton[locale]
24
- };
25
- this.membersLabel = loc.membersLabel[locale];
26
- this.locale = locale;
27
- }
28
- }
29
- const loc = {
30
- shortVideosSectionTitle: {
31
- en: 'Popular Short Videos',
32
- no: 'Populære korte videoer'
33
- },
34
- popularStreamsSectionTitle: {
35
- en: 'Popular Streams',
36
- no: 'Populære Streams'
37
- },
38
- streamsSectionTitle: {
39
- en: 'Latest Streams',
40
- no: 'Siste Streams'
41
- },
42
- interestsSectionTitle: {
43
- en: 'Interest Channels',
44
- no: 'Interessekanaler'
45
- },
46
- overviewLabel: {
47
- en: 'Overview',
48
- no: 'Oversikt'
49
- },
50
- discoverButton: {
51
- en: 'Discover',
52
- no: 'Oppdag'
53
- },
54
- feedButton: {
55
- en: 'Feed',
56
- no: 'Feed'
57
- },
58
- cartButton: {
59
- en: 'Cart',
60
- no: 'Handlekurv'
61
- },
62
- loginButton: {
63
- en: 'Login',
64
- no: 'Logg inn'
65
- },
66
- momentsButton: {
67
- en: 'Moments',
68
- no: 'Øyeblikk'
69
- },
70
- webpageButton: {
71
- en: 'Webpage',
72
- no: 'Nettside'
73
- },
74
- membersLabel: {
75
- en: (count) => (count === 1 ? `Member` : `Members`),
76
- no: (count) => (count === 1 ? `Medlem` : `Medlemmer`)
77
- }
78
- };
@@ -1,142 +0,0 @@
1
- <script lang="ts">import { getPostCoverImage } from '../../../posts/model';
2
- import { ProductCard } from '../../../products/product-card';
3
- import { ShortVideoCard } from '../../../short-videos/short-video-card';
4
- import { StreamCard } from '../../../streams/stream-card';
5
- import { DiscoverPanelLocalization } from './discover-panel-localization';
6
- let { context, locale, on } = $props();
7
- const handler = $derived(context.discoverHandler);
8
- const localization = $derived(new DiscoverPanelLocalization(locale));
9
- </script>
10
-
11
- <div class="media-center-overview">
12
- <div class="media-center-overview__content">
13
- {#if handler.streamSectionItems.length}
14
- <div class="media-center-overview__section">
15
- <div class="media-center-overview__section-header media-center-overview__section-header--blue">
16
- {localization.latestStreamsSectionTitle}
17
- </div>
18
- <div class="media-center-overview__section-content">
19
- {#each handler.streamSectionItems as item (item.id)}
20
- <StreamCard stream={item} on={{ click: () => on.streamSelected(item) }}></StreamCard>
21
- {/each}
22
- </div>
23
- </div>
24
- {/if}
25
- {#if handler.shortVideoSectionItems.length}
26
- <div class="media-center-overview__section">
27
- <div class="media-center-overview__section-header media-center-overview__section-header--red">
28
- {localization.shortVideosSectionTitle}
29
- </div>
30
- <div class="media-center-overview__section-content">
31
- {#each handler.shortVideoSectionItems as item (item.data)}
32
- {#if item.kind === 'video'}
33
- <div class="media-center-overview__card-wrapper">
34
- <ShortVideoCard
35
- shortVideo={{ id: item.data.id, text: item.data.text, cover: getPostCoverImage(item.data) }}
36
- on={{ click: () => on.shortVideoSelected(item.data) }} />
37
- </div>
38
- {:else if item.kind === 'product'}
39
- <div class="media-center-overview__card-wrapper" data-theme="dark">
40
- <ProductCard
41
- product={item.data}
42
- colors={{
43
- background: context.playerColors?.cardBackground ?? null,
44
- price: context.playerColors?.price ?? null,
45
- salePrice: context.playerColors?.salePrice ?? null
46
- }}
47
- trackingParams={item.trackingParams}
48
- locale={localization.locale} />
49
- </div>
50
- {/if}
51
- {/each}
52
- </div>
53
- </div>
54
- {/if}
55
- </div>
56
- </div>
57
-
58
- <style>@keyframes fadeIn {
59
- 0% {
60
- opacity: 1;
61
- }
62
- 50% {
63
- opacity: 0.4;
64
- }
65
- 100% {
66
- opacity: 1;
67
- }
68
- }
69
- .media-center-overview {
70
- background: transparent;
71
- width: 100%;
72
- display: flex;
73
- justify-content: center;
74
- padding: 1.25rem 1.875rem;
75
- /* Set 'container-type: inline-size;' to reference container*/
76
- }
77
- @container (width < 576px) {
78
- .media-center-overview {
79
- padding: 0.625rem 0.9375rem;
80
- }
81
- }
82
- .media-center-overview__content {
83
- width: 100%;
84
- max-width: 73.75rem;
85
- display: flex;
86
- flex-direction: column;
87
- gap: 2.25rem;
88
- }
89
- .media-center-overview__section {
90
- display: flex;
91
- flex-direction: column;
92
- gap: 1rem;
93
- }
94
- .media-center-overview__section-header {
95
- display: flex;
96
- align-items: center;
97
- gap: 0.6875rem;
98
- font-size: 1.125rem;
99
- line-height: 1.75rem;
100
- font-weight: 500;
101
- color: #ffffff;
102
- text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 6px rgba(0, 0, 0, 0.05);
103
- }
104
- .media-center-overview__section-header::before {
105
- content: "";
106
- display: inline-block;
107
- width: 0.3125rem;
108
- height: 1.625rem;
109
- border-radius: 0.125rem;
110
- background: #5a8dec;
111
- }
112
- .media-center-overview__section-header--red::before {
113
- background: #f17e8b;
114
- }
115
- .media-center-overview__section-content {
116
- --product-card--aspect-ratio: 9/16;
117
- --product-card--border-radius: 0.375rem;
118
- display: grid;
119
- gap: 2rem 1.25rem;
120
- grid-template-columns: repeat(5, minmax(0, 1fr));
121
- /* Set 'container-type: inline-size;' to reference container*/
122
- /* Set 'container-type: inline-size;' to reference container*/
123
- /* Set 'container-type: inline-size;' to reference container*/
124
- }
125
- @container (width < 992px) {
126
- .media-center-overview__section-content {
127
- grid-template-columns: repeat(4, minmax(0, 1fr));
128
- }
129
- }
130
- @container (width < 768px) {
131
- .media-center-overview__section-content {
132
- grid-template-columns: repeat(3, minmax(0, 1fr));
133
- }
134
- }
135
- @container (width < 576px) {
136
- .media-center-overview__section-content {
137
- grid-template-columns: repeat(2, minmax(0, 1fr));
138
- }
139
- }
140
- .media-center-overview__card-wrapper {
141
- aspect-ratio: 9/16;
142
- }</style>
@@ -1,6 +0,0 @@
1
- export declare class FeedHandler {
2
- private _active;
3
- get active(): boolean;
4
- activate: () => Promise<void>;
5
- deactivate: () => void;
6
- }
@@ -1,12 +0,0 @@
1
- export class FeedHandler {
2
- _active = $state(false);
3
- get active() {
4
- return this._active;
5
- }
6
- activate = async () => {
7
- this._active = true;
8
- };
9
- deactivate = () => {
10
- this._active = false;
11
- };
12
- }
@@ -1,2 +0,0 @@
1
- export { makePostPlayerItemsProvider } from './post-player-provider-generator';
2
- export { makeStreamsPlayerDataProvider } from './streams-player-provider-generator';
@@ -1,2 +0,0 @@
1
- export { makePostPlayerItemsProvider } from './post-player-provider-generator';
2
- export { makeStreamsPlayerDataProvider } from './streams-player-provider-generator';
@@ -1,8 +0,0 @@
1
- import type { IMediaCenterConfig } from '../../config/types';
2
- import type { PostPlayerModel } from '../../../posts/posts-player/types';
3
- import type { IFeedPlayerDataProvider } from '../../../ui/player/providers';
4
- export declare const makePostPlayerItemsProvider: (data: {
5
- config: IMediaCenterConfig;
6
- categoryId?: string;
7
- prefetchedItems?: PostPlayerModel[];
8
- }) => IFeedPlayerDataProvider<PostPlayerModel>;
@@ -1,32 +0,0 @@
1
- import { ContinuationToken } from '../../../core/continuation-token';
2
- import { CursorDataLoader } from '../../../core/data-loaders';
3
- import { PostType } from '../../../core/enums';
4
- export const makePostPlayerItemsProvider = (data) => {
5
- const { config, categoryId, prefetchedItems = [] } = data;
6
- const loader = new CursorDataLoader({
7
- loadPage: async (continuationToken) => {
8
- const result = await config.postsPlayer.getPostsCursor({
9
- filter: {
10
- types: [PostType.Article, PostType.Media, PostType.ShortVideo, PostType.Video],
11
- categoryId,
12
- excludeIds: prefetchedItems.length ? prefetchedItems.map((i) => i.id) : undefined
13
- },
14
- continuationToken: continuationToken.toNextChunkString(),
15
- limit: 20
16
- });
17
- const items = result.items;
18
- return {
19
- items: items,
20
- continuationToken: ContinuationToken.fromPayload(result.continuationToken)
21
- };
22
- }
23
- });
24
- return {
25
- kind: 'feed',
26
- initialData: {
27
- prefetchedItems,
28
- startIndex: prefetchedItems.length ? 0 : -1
29
- },
30
- loadMore: loader.loadMore
31
- };
32
- };
@@ -1,8 +0,0 @@
1
- import type { IMediaCenterConfig } from '../../config/types';
2
- import type { IStreamsPlayerDataProvider, StreamPlayerModel } from '../../../streams/streams-player/types';
3
- export declare const makeStreamsPlayerDataProvider: (data: {
4
- config: IMediaCenterConfig;
5
- initialStreamId?: string;
6
- categoryId?: string;
7
- prefetchedStreams?: StreamPlayerModel[];
8
- }) => IStreamsPlayerDataProvider;
@@ -1,36 +0,0 @@
1
- import { ContinuationToken } from '../../../core/continuation-token';
2
- import { CursorDataLoader } from '../../../core/data-loaders';
3
- export const makeStreamsPlayerDataProvider = (data) => {
4
- const { config, categoryId, prefetchedStreams: initialPrefetchedStreams = [], initialStreamId } = data;
5
- const loader = new CursorDataLoader({
6
- loadPage: async (continuationToken) => {
7
- const result = await config.streamPlayer.getStreamsCursor({
8
- filter: {
9
- categoryId,
10
- excludeIds: initialPrefetchedStreams.length ? initialPrefetchedStreams.map((i) => i.id) : undefined
11
- },
12
- continuationToken: continuationToken.toNextChunkString(),
13
- limit: 20
14
- });
15
- const items = result.items;
16
- return {
17
- items: items,
18
- continuationToken: ContinuationToken.fromPayload(result.continuationToken)
19
- };
20
- }
21
- });
22
- let prefetchedStreams = initialPrefetchedStreams;
23
- if (initialStreamId) {
24
- const targetStream = prefetchedStreams.find((stream) => stream.id === initialStreamId);
25
- if (targetStream) {
26
- prefetchedStreams = [targetStream, ...prefetchedStreams.filter((stream) => stream.id !== initialStreamId)];
27
- }
28
- }
29
- return {
30
- initialData: {
31
- prefetchedStreams
32
- },
33
- loadMoreStreams: loader.loadMore,
34
- getStreamPages: config.streamPlayer.getStreamPages
35
- };
36
- };
@@ -1,17 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- export type MediaCenterData = {
3
- header?: Snippet;
4
- mobileFooter?: Snippet;
5
- overlayIsActive: boolean;
6
- callbacks: {
7
- onPlayerInitialized: (data: MediaCenterPlayerInitializedData) => void;
8
- };
9
- };
10
- export type MediaCenterPlayerInitializedData = {
11
- extraActionsForMobilePanel: ExtraActionDefinition[];
12
- closePlayerFn: (() => void) | null;
13
- };
14
- export type ExtraActionDefinition = {
15
- name: string;
16
- callback: () => void;
17
- };