@streamscloud/embeddable 12.1.0 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/ads/ad-card/cmp.ad-card.svelte +4 -16
  2. package/dist/content-player/cmp.content-player.svelte +1 -1
  3. package/dist/content-player/content-player-config.svelte.d.ts +2 -12
  4. package/dist/content-player/content-player-config.svelte.js +1 -1
  5. package/dist/content-player/content-player-settings.svelte.d.ts +16 -0
  6. package/dist/content-player/content-player-settings.svelte.js +27 -0
  7. package/dist/content-player/controls-and-attachments.svelte +32 -2
  8. package/dist/content-player/controls-and-attachments.svelte.d.ts +1 -0
  9. package/dist/content-player/index.d.ts +1 -0
  10. package/dist/content-player/index.js +1 -0
  11. package/dist/content-player/overview-panel.svelte +2 -2
  12. package/dist/content-player/ui-manager.svelte.d.ts +2 -1
  13. package/dist/content-player/ui-manager.svelte.js +2 -1
  14. package/dist/core/enums.d.ts +3 -0
  15. package/dist/core/enums.js +4 -0
  16. package/dist/core/theme/index.d.ts +2 -0
  17. package/dist/core/theme/index.js +1 -0
  18. package/dist/core/theme/theme-store.svelte.d.ts +6 -0
  19. package/dist/core/theme/theme-store.svelte.js +10 -0
  20. package/dist/external-api/data-providers/index.d.ts +6 -0
  21. package/dist/external-api/data-providers/index.js +6 -0
  22. package/dist/external-api/data-providers/internal-media-center-data-provider.svelte.d.ts +15 -0
  23. package/dist/{media-center/config/internal-media-center-config.js → external-api/data-providers/internal-media-center-data-provider.svelte.js} +33 -17
  24. package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.d.ts +1 -1
  25. package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.js +1 -1
  26. package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.d.ts +1 -1
  27. package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.d.ts +1 -1
  28. package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.js +1 -1
  29. package/dist/{media-center/config → external-api/data-providers}/operations.generated.d.ts +6 -0
  30. package/dist/{media-center/config → external-api/data-providers}/operations.generated.js +13 -0
  31. package/dist/{media-center/config → external-api/data-providers}/operations.graphql +6 -0
  32. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.d.ts +1 -1
  33. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.js +2 -2
  34. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.d.ts +1 -1
  35. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.d.ts +2 -2
  36. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.js +1 -1
  37. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.d.ts +1 -1
  38. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.js +1 -1
  39. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.d.ts +1 -1
  40. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.d.ts +1 -1
  41. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.js +2 -2
  42. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.d.ts +2 -2
  43. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.js +6 -2
  44. package/dist/external-api/index.d.ts +3 -0
  45. package/dist/external-api/index.js +3 -0
  46. package/dist/external-api/media-page/index.d.ts +83 -0
  47. package/dist/external-api/media-page/index.js +82 -0
  48. package/dist/{short-videos → external-api}/short-videos-player/index.d.ts +27 -12
  49. package/dist/{short-videos → external-api}/short-videos-player/index.js +35 -28
  50. package/dist/external-api/streams-player/index.d.ts +105 -0
  51. package/dist/external-api/streams-player/index.js +110 -0
  52. package/dist/media-center/config/types.d.ts +28 -27
  53. package/dist/media-center/index.d.ts +3 -1
  54. package/dist/media-center/media-center/cmp.media-center-proxy.svelte +59 -0
  55. package/dist/media-center/media-center/cmp.media-center-proxy.svelte.d.ts +15 -0
  56. package/dist/media-center/media-center/discover/community-features-localization.d.ts +8 -0
  57. package/dist/media-center/media-center/discover/community-features-localization.js +31 -0
  58. package/dist/media-center/media-center/discover/community-features.svelte +171 -0
  59. package/dist/media-center/media-center/discover/community-features.svelte.d.ts +11 -0
  60. package/dist/media-center/media-center/discover/data-loading.d.ts +3 -3
  61. package/dist/media-center/media-center/discover/data-loading.js +5 -5
  62. package/dist/media-center/media-center/discover/discover-header.svelte +13 -65
  63. package/dist/media-center/media-center/discover/discover-header.svelte.d.ts +0 -2
  64. package/dist/media-center/media-center/discover/discover-view-handler.svelte.d.ts +3 -3
  65. package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +4 -4
  66. package/dist/media-center/media-center/discover/discover-view.svelte +6 -6
  67. package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +0 -2
  68. package/dist/media-center/media-center/feed/feed-handler.svelte.d.ts +5 -3
  69. package/dist/media-center/media-center/feed/feed-handler.svelte.js +18 -10
  70. package/dist/media-center/media-center/feed/feed-providers-generator.d.ts +11 -5
  71. package/dist/media-center/media-center/feed/feed-providers-generator.js +13 -9
  72. package/dist/media-center/media-center/footer/index.d.ts +1 -0
  73. package/dist/media-center/media-center/footer/index.js +1 -0
  74. package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte +5 -5
  75. package/dist/media-center/media-center/handlers/categories-handler.svelte.d.ts +3 -5
  76. package/dist/media-center/media-center/handlers/categories-handler.svelte.js +16 -13
  77. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +18 -5
  78. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +21 -9
  79. package/dist/media-center/media-center/{header-footer → header}/index.d.ts +0 -1
  80. package/dist/media-center/media-center/{header-footer → header}/index.js +0 -1
  81. package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte +5 -4
  82. package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte +138 -35
  83. package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte.d.ts +2 -2
  84. package/dist/media-center/media-center/index.d.ts +2 -1
  85. package/dist/media-center/media-center/index.js +2 -1
  86. package/dist/media-center/media-center/media-center-context.svelte.d.ts +16 -20
  87. package/dist/media-center/media-center/media-center-context.svelte.js +61 -19
  88. package/dist/media-center/media-center/media-center-settings.svelte.d.ts +11 -0
  89. package/dist/media-center/media-center/media-center-settings.svelte.js +23 -0
  90. package/dist/media-center/media-center/{cmp.media-center.svelte → media-center-view.svelte} +65 -108
  91. package/dist/media-center/media-center/media-center-view.svelte.d.ts +9 -0
  92. package/dist/media-center/media-center/menu/category-following-wrapper.svelte.d.ts +1 -1
  93. package/dist/media-center/media-center/menu/menu.svelte +40 -35
  94. package/dist/media-center/media-center/menu/menu.svelte.d.ts +0 -2
  95. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.d.ts +3 -3
  96. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.js +4 -4
  97. package/dist/media-center/media-center/moments/cmp.moments-circle.svelte +24 -7
  98. package/dist/media-center/media-center/moments/index.d.ts +1 -0
  99. package/dist/media-center/media-center/moments/index.js +1 -0
  100. package/dist/media-center/media-center/moments/moments-feed-handler.svelte.d.ts +26 -0
  101. package/dist/media-center/media-center/moments/moments-feed-handler.svelte.js +49 -0
  102. package/dist/media-center/media-center/moments/moments-state.svelte.d.ts +20 -0
  103. package/dist/media-center/media-center/moments/moments-state.svelte.js +82 -0
  104. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.d.ts +3 -3
  105. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.js +4 -4
  106. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -3
  107. package/dist/media-center/media-center/types.d.ts +4 -11
  108. package/dist/media-center/membership/index.d.ts +1 -0
  109. package/dist/media-center/membership/index.js +1 -0
  110. package/dist/media-center/membership/mock-membership-handler.svelte.d.ts +10 -0
  111. package/dist/media-center/membership/mock-membership-handler.svelte.js +21 -0
  112. package/dist/media-center/membership/types.d.ts +10 -0
  113. package/dist/media-center/membership/types.js +1 -0
  114. package/dist/media-center/navigation/index.d.ts +2 -0
  115. package/dist/media-center/navigation/index.js +1 -0
  116. package/dist/media-center/navigation/media-center-state.d.ts +19 -0
  117. package/dist/media-center/navigation/media-center-state.js +1 -0
  118. package/dist/media-center/navigation/mock-navigation-handler.svelte.d.ts +6 -0
  119. package/dist/media-center/navigation/mock-navigation-handler.svelte.js +6 -0
  120. package/dist/media-center/navigation/types.d.ts +5 -0
  121. package/dist/media-center/navigation/types.js +1 -0
  122. package/dist/media-page/cmp.media-page.svelte +45 -0
  123. package/dist/media-page/cmp.media-page.svelte.d.ts +11 -0
  124. package/dist/media-page/index.d.ts +42 -58
  125. package/dist/media-page/index.js +131 -17
  126. package/dist/posts/attachments/cmp.attachments.svelte +1 -1
  127. package/dist/posts/controls/cmp.controls.svelte +4 -1
  128. package/dist/posts/controls/cmp.controls.svelte.d.ts +2 -0
  129. package/dist/posts/post-viewer/attachments-horizontal.svelte +4 -12
  130. package/dist/posts/post-viewer/heading.svelte +4 -4
  131. package/dist/posts/post-viewer/media/post-media.svelte +1 -1
  132. package/dist/posts/post-viewer/post-texts.svelte +2 -2
  133. package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +1 -0
  134. package/dist/posts/posts-player/index.d.ts +31 -32
  135. package/dist/posts/posts-player/index.js +90 -35
  136. package/dist/posts/posts-player/posts-player-proxy.svelte +13 -4
  137. package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +1 -0
  138. package/dist/posts/posts-player/posts-player-view.svelte +1 -1
  139. package/dist/posts/posts-player/types.d.ts +2 -1
  140. package/dist/products/product-card/cmp.product-card.svelte +4 -16
  141. package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +6 -6
  142. package/dist/streams/layout/styles-transformer.d.ts +1 -1
  143. package/dist/streams/stream-card/cmp.stream-card.svelte +1 -1
  144. package/dist/streams/streams-player/cmp.streams-player.svelte +42 -0
  145. package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +24 -0
  146. package/dist/streams/streams-player/index.d.ts +18 -83
  147. package/dist/streams/streams-player/index.js +85 -65
  148. package/dist/streams/streams-player/stream-overview.svelte +1 -1
  149. package/dist/streams/streams-player/streams-player-buffer.svelte.js +2 -1
  150. package/dist/streams/streams-player/streams-player-proxy.svelte +32 -0
  151. package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +26 -0
  152. package/dist/streams/streams-player/streams-player-view.svelte +1 -1
  153. package/dist/streams/streams-player/types.d.ts +3 -1
  154. package/dist/ui/button/cmp.options-button.svelte +123 -0
  155. package/dist/ui/button/cmp.options-button.svelte.d.ts +20 -0
  156. package/dist/ui/button/index.d.ts +1 -0
  157. package/dist/ui/button/index.js +1 -0
  158. package/dist/ui/button/resources/button-theme.svelte +6 -143
  159. package/dist/ui/button/resources/button-types.d.ts +0 -1
  160. package/dist/ui/button/resources/button-types.js +0 -1
  161. package/dist/ui/icon/cmp.icon.svelte +8 -28
  162. package/dist/ui/image/cmp.image-rounded.svelte +3 -10
  163. package/dist/ui/image/cmp.image-stub.svelte +1 -4
  164. package/dist/ui/image/cmp.image.svelte +1 -4
  165. package/dist/ui/loading/cmp.loading.svelte +1 -4
  166. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte +2 -2
  167. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte.d.ts +2 -2
  168. package/dist/ui/player/button/cmp.player-button.svelte +7 -3
  169. package/dist/ui/player/button/cmp.player-buttons-group.svelte +4 -3
  170. package/dist/ui/player/button/cmp.player-buttons-group.svelte.d.ts +2 -2
  171. package/dist/ui/player/button/index.d.ts +1 -1
  172. package/dist/ui/player/button/types.d.ts +1 -1
  173. package/dist/ui/player/colors/index.d.ts +1 -1
  174. package/dist/ui/player/colors/index.js +1 -1
  175. package/dist/ui/player/colors/player-colors.d.ts +15 -1
  176. package/dist/ui/player/colors/player-colors.js +24 -1
  177. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +1 -0
  178. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +7 -1
  179. package/dist/ui/player/providers/default-feed-player-buffer.svelte.d.ts +1 -0
  180. package/dist/ui/player/providers/default-feed-player-buffer.svelte.js +7 -1
  181. package/dist/ui/player/providers/types.d.ts +3 -1
  182. package/dist/ui/shadow-dom/cmp.shadow-root.svelte +158 -0
  183. package/dist/ui/shadow-dom/colors.scss +74 -0
  184. package/dist/ui/shadow-dom/index.d.ts +1 -0
  185. package/dist/ui/shadow-dom/index.js +1 -0
  186. package/dist/ui/shadow-dom/shadow-root-service.js +0 -4
  187. package/dist/ui/slider/cmp.slider.svelte +5 -5
  188. package/package.json +5 -1
  189. package/dist/content-player/content-player-settings.d.ts +0 -12
  190. package/dist/content-player/content-player-settings.js +0 -22
  191. package/dist/media-center/config/internal-media-center-config.d.ts +0 -14
  192. package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +0 -4
  193. package/dist/media-center/media-center/discover/discover-header-localization.d.ts +0 -6
  194. package/dist/media-center/media-center/discover/discover-header-localization.js +0 -15
  195. package/dist/posts/handlers/index.d.ts +0 -1
  196. package/dist/posts/handlers/index.js +0 -1
  197. package/dist/short-videos/data-providers/index.d.ts +0 -1
  198. package/dist/short-videos/data-providers/index.js +0 -1
  199. package/dist/ui/with-background/cmp.with-background.svelte +0 -86
  200. package/dist/ui/with-background/index.d.ts +0 -1
  201. package/dist/ui/with-background/index.js +0 -1
  202. /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.d.ts +0 -0
  203. /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.js +0 -0
  204. /package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.js +0 -0
  205. /package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.d.ts +0 -0
  206. /package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.js +0 -0
  207. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.d.ts +0 -0
  208. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.js +0 -0
  209. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.js +0 -0
  210. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.graphql +0 -0
  211. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.d.ts +0 -0
  212. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.js +0 -0
  213. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.js +0 -0
  214. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.graphql +0 -0
  215. /package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte.d.ts +0 -0
  216. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.d.ts +0 -0
  217. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.js +0 -0
  218. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte.d.ts +0 -0
  219. /package/dist/ui/{with-background/cmp.with-background.svelte.d.ts → shadow-dom/cmp.shadow-root.svelte.d.ts} +0 -0
@@ -11,46 +11,14 @@ import { Utils } from '../../core/utils';
11
11
  import { default as PostsPlayerView } from '../../posts/posts-player/posts-player-view.svelte';
12
12
  import { default as StreamsPlayerView } from '../../streams/streams-player/streams-player-view.svelte';
13
13
  import { Loading } from '../../ui/loading';
14
- import { WithBackground } from '../../ui/with-background';
15
14
  import { DiscoverPanel } from './discover';
16
- import { MediaCenterHeader, MediaCenterFooter, MediaCenterHeaderMobile } from './header-footer';
15
+ import { MediaCenterFooter } from './footer';
16
+ import { MediaCenterHeader, MediaCenterHeaderMobile } from './header';
17
17
  import { MediaCenterContext } from './media-center-context.svelte';
18
18
  import { Menu } from './menu';
19
19
  import { StreamsInCategoryPanel } from './streams-in-category';
20
20
  import { fade } from 'svelte/transition';
21
- let { config, modeProps, settings, closeOrchestrator } = $props();
22
- const context = new MediaCenterContext({
23
- config,
24
- closeOrchestrator,
25
- settings,
26
- on: {
27
- initialized: (instance) => {
28
- switch (modeProps.mode) {
29
- case 'posts':
30
- instance.playPostsFeed({
31
- dataProvider: modeProps.props.dataProvider,
32
- onPostActivated: modeProps.props.onPostActivated
33
- });
34
- break;
35
- case 'streams':
36
- instance.playStreamsFeed({
37
- dataProvider: modeProps.props.dataProvider,
38
- onStreamActivated: modeProps.props.onStreamActivated
39
- });
40
- break;
41
- case 'discover':
42
- instance.activateDiscover({ categoryId: null });
43
- break;
44
- default:
45
- Utils.assertUnreachable(modeProps);
46
- }
47
- },
48
- failed: () => {
49
- console.error('Media Center initialization failed');
50
- closeOrchestrator.requestClose();
51
- }
52
- }
53
- });
21
+ let { context, dynamicActions } = $props();
54
22
  let headerHeight = $state(0);
55
23
  let isMobileView = $state(false);
56
24
  const selectCategory = (categoryId) => __awaiter(void 0, void 0, void 0, function* () {
@@ -76,6 +44,9 @@ const selectCategory = (categoryId) => __awaiter(void 0, void 0, void 0, functio
76
44
  case 'discover':
77
45
  context.activateDiscover({ categoryId });
78
46
  break;
47
+ case 'moments':
48
+ context.playPostsFeed({ filter: { categoryId } });
49
+ break;
79
50
  default:
80
51
  Utils.assertUnreachable(context.mediaCenterMode);
81
52
  }
@@ -108,7 +79,7 @@ const swipeToOpen = (node) => {
108
79
  let startY = 0;
109
80
  let isTracking = false;
110
81
  let hasOpened = false;
111
- let threshold = 60;
82
+ let threshold = 50;
112
83
  const MIN_DISTANCE = 10;
113
84
  function handleTouchStart(e) {
114
85
  if (e.touches.length !== 1) {
@@ -159,67 +130,63 @@ const swipeToOpen = (node) => {
159
130
  };
160
131
  </script>
161
132
 
162
- {#if context.initializing}
163
- <Loading positionFixedCenter={true} timeout={600} />
164
- {:else if !context.initialized}
165
- Not initialized placeholder
166
- {:else}
167
- <WithBackground {...context.backgroundWrapperProps}>
168
- <div class="media-center" use:onWidthAnchorMounted>
169
- {#if !isMobileView}
170
- <MediaCenterHeader context={context} locale={settings?.locale} on={{ headerHeightChanged: onHeaderHeightChanged }} />
171
- {:else}
172
- <MediaCenterHeaderMobile context={context} on={{ headerHeightChanged: onHeaderHeightChanged }} />
173
- {/if}
133
+ <div class="media-center" use:onWidthAnchorMounted>
134
+ <div class="media-center__header-and-content">
135
+ {#if !isMobileView}
136
+ <MediaCenterHeader context={context} dynamicActions={dynamicActions} on={{ headerHeightChanged: onHeaderHeightChanged }} />
137
+ {:else}
138
+ <MediaCenterHeaderMobile context={context} on={{ headerHeightChanged: onHeaderHeightChanged }} />
139
+ {/if}
174
140
 
175
- <div class="media-center__content-container">
176
- {#if context.mediaCenterMode === 'feed' && context.feedPlayerProps}
177
- <div class="media-center__content" class:media-center__content--faded={context.overlayIsActive} transition:fade={{ duration: 300 }}>
178
- {#if context.feedPlayerProps.type === 'posts'}
179
- <PostsPlayerView {...context.feedPlayerProps.props} />
180
- {:else if context.feedPlayerProps.type === 'streams'}
181
- <StreamsPlayerView {...context.feedPlayerProps.props} />
182
- {/if}
183
- </div>
184
- {:else if context.mediaCenterMode === 'discover'}
185
- <div class="media-center__content" transition:fade={{ duration: 300 }}>
186
- <DiscoverPanel
187
- context={context}
188
- locale={settings?.locale}
189
- on={{
190
- shortVideoSelected: (shortVideo) => activateSelectedShortVideoPlayer(shortVideo),
191
- streamSelected: (stream) => activateSelectedStreamPlayer(stream)
192
- }} />
193
- </div>
194
- {/if}
195
- </div>
196
- {#if context.loading}
197
- <Loading positionFixedCenter={true} timeout={600} />
198
- {/if}
199
-
200
- {#if context.streamsInCategoryHandler.active}
201
- <div class="media-center-overlay" class:media-center-overlay--mobile={isMobileView} style={`top:${headerHeight}px`} transition:fade={{ duration: 300 }}>
202
- <StreamsInCategoryPanel
203
- handler={context.streamsInCategoryHandler}
204
- on={{ streamSelected: (id, categoryId, streams) => activateSelectedStreamOfCategoryPlayer(id, streams, categoryId) }} />
141
+ <div class="media-center__content-container" use:swipeToOpen>
142
+ {#if context.mediaCenterMode === 'feed' && context.feedPlayerProps}
143
+ <div class="media-center__content" class:media-center__content--faded={context.overlayIsActive} transition:fade={{ duration: 300 }}>
144
+ {#if context.feedPlayerProps.type === 'posts'}
145
+ <PostsPlayerView {...context.feedPlayerProps.props} />
146
+ {:else if context.feedPlayerProps.type === 'streams'}
147
+ <StreamsPlayerView {...context.feedPlayerProps.props} />
148
+ {/if}
149
+ </div>
150
+ {:else if context.mediaCenterMode === 'discover'}
151
+ <div class="media-center__content" transition:fade={{ duration: 300 }}>
152
+ <DiscoverPanel
153
+ context={context}
154
+ on={{
155
+ shortVideoSelected: (shortVideo) => activateSelectedShortVideoPlayer(shortVideo),
156
+ streamSelected: (stream) => activateSelectedStreamPlayer(stream)
157
+ }} />
158
+ </div>
159
+ {:else if context.mediaCenterMode === 'moments' && context.momentsPlayerProps}
160
+ <div class="media-center__content" class:media-center__content--faded={context.overlayIsActive} transition:fade={{ duration: 300 }}>
161
+ <PostsPlayerView {...context.momentsPlayerProps} />
205
162
  </div>
206
163
  {/if}
164
+ </div>
207
165
 
208
- {#if context.menuActive}
209
- <div class="menu-overlay" class:menu-overlay--mobile={isMobileView} onclick={context.hideMenu} onkeydown={() => {}} role="none">
210
- <div class="menu-overlay__panel">
211
- <Menu context={context} locale={settings?.locale} on={{ categorySelected: selectCategory, streamSelected: activateSelectedStreamPlayer }} />
212
- </div>
166
+ {#if context.menuActive}
167
+ <div class="menu-overlay" class:menu-overlay--mobile={isMobileView} onclick={context.hideMenu} onkeydown={() => {}} role="none">
168
+ <div class="menu-overlay__panel">
169
+ <Menu context={context} on={{ categorySelected: selectCategory, streamSelected: activateSelectedStreamPlayer }} />
213
170
  </div>
214
- {:else}
215
- <div class="menu-swipe-area" use:swipeToOpen>&nbsp;</div>
216
- {/if}
217
- {#if isMobileView}
218
- <MediaCenterFooter context={context} />
219
- {/if}
171
+ </div>
172
+ {/if}
173
+ </div>
174
+ {#if context.loading}
175
+ <Loading positionFixedCenter={true} timeout={600} />
176
+ {/if}
177
+
178
+ {#if context.streamsInCategoryHandler.active}
179
+ <div class="media-center-overlay" class:media-center-overlay--mobile={isMobileView} style={`top:${headerHeight}px`} transition:fade={{ duration: 300 }}>
180
+ <StreamsInCategoryPanel
181
+ handler={context.streamsInCategoryHandler}
182
+ on={{ streamSelected: (id, categoryId, streams) => activateSelectedStreamOfCategoryPlayer(id, streams, categoryId) }} />
220
183
  </div>
221
- </WithBackground>
222
- {/if}
184
+ {/if}
185
+
186
+ {#if isMobileView}
187
+ <MediaCenterFooter context={context} />
188
+ {/if}
189
+ </div>
223
190
 
224
191
  <style>@keyframes fadeIn {
225
192
  0% {
@@ -243,6 +210,13 @@ const swipeToOpen = (node) => {
243
210
  flex-direction: column;
244
211
  position: relative;
245
212
  }
213
+ .media-center__header-and-content {
214
+ display: flex;
215
+ flex-direction: column;
216
+ flex: 1;
217
+ min-height: 0;
218
+ position: relative;
219
+ }
246
220
  .media-center__content-container {
247
221
  flex: 1;
248
222
  min-height: 0;
@@ -301,26 +275,9 @@ const swipeToOpen = (node) => {
301
275
  }
302
276
  .menu-overlay--mobile {
303
277
  right: 0;
304
- bottom: 6.25rem;
305
278
  }
306
279
  .menu-overlay__panel {
307
280
  width: 17.5rem;
308
281
  height: 100%;
309
282
  max-height: 100%;
310
- }
311
-
312
- .menu-swipe-area {
313
- display: none;
314
- position: absolute;
315
- top: 0;
316
- left: 0;
317
- width: 1.875rem;
318
- height: 100%;
319
- z-index: 1;
320
- /* Set 'container-type: inline-size;' to reference container*/
321
- }
322
- @container (width < 576px) {
323
- .menu-swipe-area {
324
- display: block;
325
- }
326
283
  }</style>
@@ -0,0 +1,9 @@
1
+ import { MediaCenterContext } from './media-center-context.svelte';
2
+ import type { Snippet } from 'svelte';
3
+ type Props = {
4
+ context: MediaCenterContext;
5
+ dynamicActions?: Snippet;
6
+ };
7
+ declare const MediaCenterView: import("svelte").Component<Props, {}, "">;
8
+ type MediaCenterView = ReturnType<typeof MediaCenterView>;
9
+ export default MediaCenterView;
@@ -2,7 +2,7 @@ import type { MediaCenterContext } from '../media-center-context.svelte';
2
2
  import { type Snippet } from 'svelte';
3
3
  type Props = {
4
4
  categoryId: string;
5
- followingHandler?: MediaCenterContext['categoryFollowingHandler'];
5
+ followingHandler?: MediaCenterContext['categoriesFollowingHandler'];
6
6
  children: Snippet;
7
7
  invertedOrientation?: boolean;
8
8
  };
@@ -10,9 +10,9 @@ import { MenuLocalization } from './menu-localization';
10
10
  import IconChevronDownFilled from '@fluentui/svg-icons/icons/chevron_down_20_filled.svg?raw';
11
11
  import IconChevronRightFilled from '@fluentui/svg-icons/icons/chevron_right_20_filled.svg?raw';
12
12
  import { slide } from 'svelte/transition';
13
- let { context, locale = 'en', on } = $props();
14
- const localization = $derived(new MenuLocalization(locale));
15
- const target = $derived.by(() => context.targetData);
13
+ let { context, on } = $props();
14
+ const localization = $derived(new MenuLocalization(context.locale));
15
+ const target = $derived.by(() => context.model);
16
16
  const generateCategoriesMap = () => {
17
17
  const expanded = {};
18
18
  context.categoriesHandler.categoriesGrouped.forEach((c) => {
@@ -23,15 +23,15 @@ const generateCategoriesMap = () => {
23
23
  return expanded;
24
24
  };
25
25
  const categoriesExpandedMap = $state(generateCategoriesMap());
26
+ const indicateActiveCategory = $derived(context.mediaCenterMode !== 'moments');
26
27
  const handleCategoryExpaned = (e, categoryId) => {
27
28
  e.stopPropagation();
28
29
  categoriesExpandedMap[categoryId] = !categoriesExpandedMap[categoryId];
29
30
  };
30
31
  const styles = $derived.by(() => {
31
- var _a;
32
32
  const values = [];
33
- if ((_a = context.playerColors) === null || _a === void 0 ? void 0 : _a.menuBackground) {
34
- values.push(`--media-center-menu--background-color: ${context.playerColors.menuBackground}`);
33
+ if (context.mediaCenterColors.menuBackground) {
34
+ values.push(`--media-center-menu--background-color: ${context.mediaCenterColors.menuBackground}`);
35
35
  }
36
36
  return values.join(';');
37
37
  });
@@ -45,18 +45,18 @@ const styles = $derived.by(() => {
45
45
  </div>
46
46
  <div class="media-center-target__info">
47
47
  <div class="media-center-target__name">
48
- <LineClamp maxLines={1} locale={locale}>
48
+ <LineClamp maxLines={1} locale={context.locale}>
49
49
  {target.name}
50
50
  </LineClamp>
51
51
  </div>
52
- {#if target.membersCount}
53
- <LineClamp maxLines={1} locale={locale}>
52
+ {#if target.communityFeatures && target.communityFeatures.membersCount}
53
+ <LineClamp maxLines={1} locale={context.locale}>
54
54
  <div class="media-center-target__members">
55
55
  <span class="media-center-target__members-count">
56
- {compactNumber(target.membersCount, { locale: localization.locale })}
56
+ {compactNumber(target.communityFeatures.membersCount, { locale: localization.locale })}
57
57
  </span>
58
58
  <span class="media-center-target__members-label">
59
- {localization.membersLabel(target.membersCount)}
59
+ {localization.membersLabel(target.communityFeatures.membersCount)}
60
60
  </span>
61
61
  </div>
62
62
  </LineClamp>
@@ -70,27 +70,26 @@ const styles = $derived.by(() => {
70
70
  </div>
71
71
  <div class="media-center-menu__tree">
72
72
  <div class="media-center-menu__tree-item">
73
- <div class="menu-item">
74
- <div class="menu-item__value">
75
- <div
76
- class="menu-item__text"
77
- class:menu-item__text--active={!context.categoriesHandler.selectedCategoryId}
78
- onclick={() => context.playRootFeed()}
79
- onkeydown={() => {}}
80
- role="button"
81
- tabindex="0">
73
+ <div class="menu-item" class:menu-item--active={!context.categoriesHandler.selectedCategoryId}>
74
+ <div class="menu-item__content" onclick={() => context.playRootFeed()} onkeydown={() => {}} role="button" tabindex="0">
75
+ <div class="menu-item__text" class:menu-item__text--active={!context.categoriesHandler.selectedCategoryId}>
82
76
  {context.mediaCenterMode === 'discover' ? localization.discoverLabel : localization.feedLabel}
83
77
  </div>
84
78
  </div>
85
79
  </div>
86
80
  </div>
87
81
  {#snippet categoryItem(category: { type: 'main'; value: MediaCenterCategoryModel } | { type: 'child'; value: MediaCenterSubCategoryModel })}
88
- <div class="menu-item" class:menu-item--child={category.type === 'child'}>
89
- <div class="menu-item__value" onclick={() => on.categorySelected(category.value.id)} onkeydown={() => {}} role="button" tabindex="0">
82
+ <div
83
+ class="menu-item"
84
+ class:menu-item--child={category.type === 'child'}
85
+ class:menu-item--active={context.categoriesHandler.selectedCategoryId === category.value.id && indicateActiveCategory}>
86
+ <div class="menu-item__content" onclick={() => on.categorySelected(category.value.id)} onkeydown={() => {}} role="button" tabindex="0">
90
87
  <div class="menu-item__image">
91
88
  <ImageRound src={category.value.image} noBorders={true} />
92
89
  </div>
93
- <div class="menu-item__text" class:menu-item__text--active={context.categoriesHandler.selectedCategoryId === category.value.id}>
90
+ <div
91
+ class="menu-item__text"
92
+ class:menu-item__text--active={context.categoriesHandler.selectedCategoryId === category.value.id && indicateActiveCategory}>
94
93
  {category.value.name}
95
94
  </div>
96
95
  {#if category.value.tag}
@@ -99,7 +98,7 @@ const styles = $derived.by(() => {
99
98
  </div>
100
99
  {/if}
101
100
  </div>
102
- <ButtonWrapper categoryId={category.value.id} followingHandler={context.categoryFollowingHandler} invertedOrientation={true}>
101
+ <ButtonWrapper categoryId={category.value.id} followingHandler={context.categoriesFollowingHandler} invertedOrientation={true}>
103
102
  <button
104
103
  type="button"
105
104
  class="menu-item__collapser"
@@ -155,7 +154,8 @@ const styles = $derived.by(() => {
155
154
  }
156
155
  }
157
156
  .media-center-menu {
158
- --_media-center-menu--background-color: var(--media-center-menu--background-color, rgb(from #000000 r g b / 95%));
157
+ --_media-center-menu--background-color: var(--media-center-menu--background-color, rgb(from var(--sc-mc-color--bg-panel) r g b / 95%));
158
+ --_media-center-menu--items--padding-inline: 0.625rem;
159
159
  background: var(--_media-center-menu--background-color);
160
160
  height: 100%;
161
161
  min-height: 100%;
@@ -167,8 +167,7 @@ const styles = $derived.by(() => {
167
167
  gap: 1.25rem;
168
168
  flex-direction: column;
169
169
  min-height: 0;
170
- padding: 0.9375rem 1.25rem;
171
- padding-right: 0.75rem;
170
+ padding: 0.9375rem 0.375rem;
172
171
  border-radius: 0 1rem 1rem 0;
173
172
  }
174
173
  .media-center-menu__content {
@@ -208,7 +207,8 @@ const styles = $derived.by(() => {
208
207
  font-size: 1.125rem;
209
208
  line-height: 1.75rem;
210
209
  font-weight: 500;
211
- color: #ffffff;
210
+ color: var(--sc-mc-color--text-primary);
211
+ padding-inline: var(--_media-center-menu--items--padding-inline);
212
212
  }
213
213
  .media-center-menu__tree {
214
214
  display: flex;
@@ -227,7 +227,7 @@ const styles = $derived.by(() => {
227
227
  flex-direction: column;
228
228
  gap: 1rem;
229
229
  padding-top: 1.25rem;
230
- padding-right: 0.5rem;
230
+ padding-inline: var(--_media-center-menu--items--padding-inline);
231
231
  }
232
232
  .media-center-menu__popular-streams {
233
233
  display: grid;
@@ -240,19 +240,24 @@ const styles = $derived.by(() => {
240
240
  -webkit-user-drag: none;
241
241
  user-select: none;
242
242
  height: 2.25rem;
243
+ padding-left: var(--_media-center-menu--items--padding-inline);
243
244
  --_menu-item--text--font-size: 0.9375rem;
244
245
  --_menu-item--image--size: 1.5rem;
245
246
  }
246
247
  .menu-item :global([contenteditable]) {
247
248
  user-select: text;
248
249
  }
250
+ .menu-item--active {
251
+ background-color: hsl(from var(--_media-center-menu--background-color) h s calc(l + 5)/alpha);
252
+ border-radius: 0.25rem;
253
+ }
249
254
  .menu-item--child {
250
255
  height: 2.125rem;
251
256
  padding-left: 1.25rem;
252
257
  --_menu-item--text--font-size: 0.875rem;
253
258
  --_menu-item--image--size: 1.375rem;
254
259
  }
255
- .menu-item__value {
260
+ .menu-item__content {
256
261
  display: flex;
257
262
  align-items: center;
258
263
  flex: 1;
@@ -270,7 +275,7 @@ const styles = $derived.by(() => {
270
275
  }
271
276
  .menu-item__text {
272
277
  max-width: 100%;
273
- color: #ffffff;
278
+ color: var(--sc-mc-color--text-primary);
274
279
  font-size: var(--_menu-item--text--font-size);
275
280
  font-weight: 400;
276
281
  text-align: left;
@@ -288,7 +293,6 @@ const styles = $derived.by(() => {
288
293
  }
289
294
  .menu-item__tag {
290
295
  height: min-content;
291
- width: min-content;
292
296
  border-radius: 0.25rem;
293
297
  padding: 0.3125rem 0.375rem;
294
298
  font-size: 0.5rem;
@@ -297,7 +301,7 @@ const styles = $derived.by(() => {
297
301
  margin-left: 0.25rem;
298
302
  }
299
303
  .menu-item__collapser {
300
- --icon--color: #ffffff;
304
+ --icon--color: var(--sc-mc-color--text-primary);
301
305
  --icon--size: 1rem;
302
306
  padding: 0.5rem;
303
307
  }
@@ -309,6 +313,7 @@ const styles = $derived.by(() => {
309
313
  display: flex;
310
314
  align-items: center;
311
315
  gap: 0.9375rem;
316
+ padding-inline: var(--_media-center-menu--items--padding-inline);
312
317
  }
313
318
  .media-center-target__image {
314
319
  width: 3.5rem;
@@ -321,7 +326,7 @@ const styles = $derived.by(() => {
321
326
  .media-center-target__info {
322
327
  display: flex;
323
328
  flex-direction: column;
324
- color: #ffffff;
329
+ color: var(--sc-mc-color--text-primary);
325
330
  }
326
331
  .media-center-target__name {
327
332
  font-size: 1.125rem;
@@ -342,5 +347,5 @@ const styles = $derived.by(() => {
342
347
  font-size: 0.75rem;
343
348
  line-height: 1;
344
349
  font-weight: 400;
345
- color: #d1d5db;
350
+ color: var(--sc-mc-color--text-secondary);
346
351
  }</style>
@@ -1,9 +1,7 @@
1
- import type { Locale } from '../../../core/locale';
2
1
  import type { StreamPlayerModel } from '../../../streams/streams-player';
3
2
  import type { MediaCenterContext } from '../media-center-context.svelte';
4
3
  type Props = {
5
4
  context: MediaCenterContext;
6
- locale?: Locale;
7
5
  on: {
8
6
  categorySelected: (categoryId: string) => void;
9
7
  streamSelected: (stream: StreamPlayerModel) => void;
@@ -1,10 +1,10 @@
1
- import type { IMediaCenterConfig } from '../..';
1
+ import type { IMediaCenterDataProvider } from '../..';
2
2
  import type { StreamPlayerModel } from '../../../streams/streams-player/types';
3
3
  export declare class PopularStreamsPanelHandler {
4
- private readonly config;
4
+ private readonly dataProvider;
5
5
  private _state;
6
6
  private _streams;
7
- constructor(config: IMediaCenterConfig);
7
+ constructor(dataProvider: IMediaCenterDataProvider);
8
8
  get streamSectionItems(): StreamPlayerModel[];
9
9
  init: () => Promise<void>;
10
10
  }
@@ -1,9 +1,9 @@
1
1
  export class PopularStreamsPanelHandler {
2
- config;
2
+ dataProvider;
3
3
  _state = $state('not-initialized');
4
4
  _streams = $state.raw([]);
5
- constructor(config) {
6
- this.config = config;
5
+ constructor(dataProvider) {
6
+ this.dataProvider = dataProvider;
7
7
  }
8
8
  get streamSectionItems() {
9
9
  return this._streams;
@@ -12,7 +12,7 @@ export class PopularStreamsPanelHandler {
12
12
  if (this._state === 'not-initialized') {
13
13
  this._state = 'loading';
14
14
  try {
15
- const streamsResponse = await this.config.streamPlayer.getStreamsCursor({ filter: {}, limit: 2 });
15
+ const streamsResponse = await this.dataProvider.streamPlayer.getStreamsCursor({ filter: {}, limit: 2 });
16
16
  this._streams = streamsResponse.items;
17
17
  }
18
18
  finally {
@@ -1,18 +1,30 @@
1
1
  <script lang="ts">import { ImageRound } from '../../../ui/image';
2
2
  let { context } = $props();
3
+ const handler = context.momentsFeedHandler;
3
4
  const styles = $derived.by(() => {
4
- var _a;
5
5
  const values = [];
6
- if ((_a = context.playerColors) === null || _a === void 0 ? void 0 : _a.brand) {
7
- values.push(`--moments-circle--brand-color: ${context.playerColors.brand}`);
6
+ if (context.mediaCenterColors.brand) {
7
+ values.push(`--moments-circle--brand-color: ${context.mediaCenterColors.brand}`);
8
8
  }
9
9
  return values.join(';');
10
10
  });
11
+ const handleClick = () => {
12
+ if (!handler.hasMoments) {
13
+ return;
14
+ }
15
+ context.playMoments();
16
+ };
11
17
  </script>
12
18
 
13
- <div class="moments-circle" style={styles}>
14
- {#if context.targetData}
15
- <ImageRound src={context.targetData.image} />
19
+ <div
20
+ class="moments-circle"
21
+ class:moments-circle--clickable={handler.hasMoments}
22
+ class:moments-circle--has-unwatched={handler.hasUnwatchedMoments}
23
+ style={styles}
24
+ onclick={handleClick}
25
+ role="none">
26
+ {#if context.model}
27
+ <ImageRound src={context.model.image} noBorders={!handler.hasUnwatchedMoments} />
16
28
  {/if}
17
29
  </div>
18
30
 
@@ -28,14 +40,19 @@ const styles = $derived.by(() => {
28
40
  }
29
41
  }
30
42
  .moments-circle {
31
- --_moments-circle--brand-color: var(--moments-circle--brand-color, #00b8d8);
43
+ --_moments-circle--brand-color: var(--moments-circle--brand-color, var(--sc-mc-color--border-brand));
32
44
  width: 6.25%rem;
33
45
  min-width: 6.25%rem;
34
46
  max-width: 6.25%rem;
35
47
  height: 6.25%rem;
36
48
  min-height: 6.25%rem;
37
49
  max-height: 6.25%rem;
50
+ }
51
+ .moments-circle--has-unwatched {
38
52
  --image--rounded--inner--border-width: 1px;
39
53
  --image--rounded--outer--border-color: var(--_moments-circle--brand-color);
40
54
  --image--rounded--outer--border-width: 2px;
55
+ }
56
+ .moments-circle--clickable {
57
+ cursor: pointer;
41
58
  }</style>
@@ -1 +1,2 @@
1
1
  export { default as MomentsCircle } from './cmp.moments-circle.svelte';
2
+ export { MomentsFeedHandler } from './moments-feed-handler.svelte';
@@ -1 +1,2 @@
1
1
  export { default as MomentsCircle } from './cmp.moments-circle.svelte';
2
+ export { MomentsFeedHandler } from './moments-feed-handler.svelte';
@@ -0,0 +1,26 @@
1
+ import type { IMediaCenterDataProvider } from '../..';
2
+ import type { PostsPlayerProps } from '../../../posts/posts-player/types';
3
+ import type { ICloseOrchestrator } from '../../../ui/player/close-orchestrator';
4
+ import { MomentsState } from './moments-state.svelte';
5
+ import { MediaCenterSettingsHandler } from '../handlers';
6
+ export declare class MomentsFeedHandler {
7
+ momentsState: MomentsState;
8
+ private _active;
9
+ private _momentsPlayerProps;
10
+ private _dataProvider;
11
+ private _mediaCenterSettingsHandler;
12
+ private _closeOrchestrator;
13
+ private _onPlayerReachedEnd;
14
+ constructor(data: {
15
+ dataProvider: IMediaCenterDataProvider;
16
+ mediaCenterSettingsHandler: MediaCenterSettingsHandler;
17
+ closeOrchestrator: ICloseOrchestrator;
18
+ onPlayerReachedEnd: () => void;
19
+ });
20
+ get active(): boolean;
21
+ get momentsPlayerProps(): PostsPlayerProps | null;
22
+ get hasUnwatchedMoments(): boolean;
23
+ get hasMoments(): boolean;
24
+ deactivate: () => void;
25
+ activateMoments: () => Promise<void>;
26
+ }
@@ -0,0 +1,49 @@
1
+ import { initBufferFromProvider } from '../../../ui/player/providers/service';
2
+ import { MomentsState } from './moments-state.svelte';
3
+ import { MediaCenterSettingsHandler } from '../handlers';
4
+ export class MomentsFeedHandler {
5
+ momentsState;
6
+ _active = $state(false);
7
+ _momentsPlayerProps = $state.raw(null);
8
+ _dataProvider;
9
+ _mediaCenterSettingsHandler;
10
+ _closeOrchestrator;
11
+ _onPlayerReachedEnd;
12
+ constructor(data) {
13
+ const { dataProvider, mediaCenterSettingsHandler, closeOrchestrator, onPlayerReachedEnd } = data;
14
+ this.momentsState = new MomentsState(dataProvider);
15
+ this._mediaCenterSettingsHandler = mediaCenterSettingsHandler;
16
+ this._dataProvider = dataProvider;
17
+ this._closeOrchestrator = closeOrchestrator;
18
+ this._onPlayerReachedEnd = onPlayerReachedEnd;
19
+ }
20
+ get active() {
21
+ return this._active;
22
+ }
23
+ get momentsPlayerProps() {
24
+ return this._momentsPlayerProps;
25
+ }
26
+ get hasUnwatchedMoments() {
27
+ return this.momentsState.unwatchedMoments.length > 0;
28
+ }
29
+ get hasMoments() {
30
+ return this.momentsState.allMoments.length > 0;
31
+ }
32
+ deactivate = () => {
33
+ this._active = false;
34
+ };
35
+ activateMoments = async () => {
36
+ this._momentsPlayerProps = {
37
+ dataProvider: { type: 'buffer', buffer: initBufferFromProvider(this.momentsState.generatePlayerDataProvider(this._onPlayerReachedEnd)) },
38
+ socialInteractionsHandler: this._dataProvider.handlers?.socialInteractionsHandler,
39
+ analyticsHandler: this._dataProvider.handlers?.analyticsHandler,
40
+ playerSettings: this._mediaCenterSettingsHandler.playerSettings,
41
+ closeOrchestrator: this._closeOrchestrator,
42
+ on: {
43
+ postActivated: (id) => this.momentsState.markMomentAsSeen(id),
44
+ backgroundImageLoaded: this._mediaCenterSettingsHandler.backgroundImageLoadedHandler
45
+ }
46
+ };
47
+ this._active = true;
48
+ };
49
+ }