@gcorevideo/player 2.28.25 → 2.28.27

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 (143) hide show
  1. package/dist/core.js +166 -61
  2. package/dist/index.css +395 -395
  3. package/dist/index.embed.js +155 -66
  4. package/dist/index.js +355 -151
  5. package/lib/Player.d.ts.map +1 -1
  6. package/lib/index.core.d.ts +1 -1
  7. package/lib/index.core.d.ts.map +1 -1
  8. package/lib/index.core.js +1 -1
  9. package/lib/index.plugins.d.ts +34 -34
  10. package/lib/index.plugins.d.ts.map +1 -1
  11. package/lib/index.plugins.js +34 -34
  12. package/lib/playback/types.d.ts.map +1 -1
  13. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  14. package/lib/plugins/bottom-gear/BottomGear.js +3 -1
  15. package/lib/plugins/clappr-nerd-stats/speedtest/index.d.ts.map +1 -1
  16. package/lib/plugins/clappr-nerd-stats/speedtest/index.js +9 -5
  17. package/lib/plugins/clappr-nerd-stats/speedtest/types.d.ts.map +1 -1
  18. package/lib/plugins/clappr-nerd-stats/utils.d.ts +2 -2
  19. package/lib/plugins/clips/utils.d.ts.map +1 -1
  20. package/lib/plugins/cmcd-config/CmcdConfig.js +1 -1
  21. package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
  22. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts.map +1 -1
  23. package/lib/plugins/google-analytics/GoogleAnalytics.js +10 -3
  24. package/lib/plugins/kibo/index.d.ts.map +1 -1
  25. package/lib/plugins/kibo/index.js +69 -20
  26. package/lib/plugins/level-selector/QualityLevels.js +2 -2
  27. package/lib/plugins/logo/Logo.d.ts.map +1 -1
  28. package/lib/plugins/logo/Logo.js +19 -15
  29. package/lib/plugins/logo/utils/index.d.ts.map +1 -1
  30. package/lib/plugins/logo/utils/index.js +11 -7
  31. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  32. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  33. package/lib/plugins/multi-camera/MultiCamera.js +42 -20
  34. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts.map +1 -1
  35. package/lib/plugins/picture-in-picture/PictureInPicture.js +3 -2
  36. package/lib/plugins/share/Share.d.ts.map +1 -1
  37. package/lib/plugins/share/Share.js +17 -12
  38. package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
  39. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
  40. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  41. package/lib/plugins/subtitles/ClosedCaptions.js +4 -3
  42. package/lib/plugins/thumbnails/Thumbnails.js +2 -3
  43. package/lib/plugins/thumbnails/utils.d.ts.map +1 -1
  44. package/lib/plugins/utils/fullscreen.d.ts.map +1 -1
  45. package/lib/plugins/utils.d.ts.map +1 -1
  46. package/lib/plugins/utils.js +1 -1
  47. package/lib/plugins/vast-ads/VastAds.d.ts.map +1 -1
  48. package/lib/plugins/vast-ads/VastAds.js +2 -1
  49. package/lib/plugins/vast-ads/loaderxml.d.ts.map +1 -1
  50. package/lib/plugins/vast-ads/loaderxml.js +8 -5
  51. package/lib/plugins/vast-ads/roll.d.ts +2 -2
  52. package/lib/plugins/vast-ads/roll.d.ts.map +1 -1
  53. package/lib/plugins/vast-ads/roll.js +16 -10
  54. package/lib/plugins/vast-ads/rollmanager.d.ts.map +1 -1
  55. package/lib/plugins/vast-ads/rollmanager.js +17 -7
  56. package/lib/plugins/vast-ads/sctemanager.d.ts +1 -1
  57. package/lib/plugins/vast-ads/sctemanager.d.ts.map +1 -1
  58. package/lib/plugins/vast-ads/sctemanager.js +6 -5
  59. package/lib/plugins/vast-ads/types.d.ts.map +1 -1
  60. package/lib/plugins/vast-ads/urlhandler.d.ts.map +1 -1
  61. package/lib/plugins/vast-ads/xmlhttprequest.d.ts.map +1 -1
  62. package/lib/plugins/vast-ads/xmlhttprequest.js +3 -2
  63. package/lib/plugins/vast-ads/xmlmerge.d.ts.map +1 -1
  64. package/lib/plugins/vast-ads/xmlmerge.js +4 -3
  65. package/lib/types.d.ts +1 -1
  66. package/lib/types.d.ts.map +1 -1
  67. package/lib/utils/clickaway.d.ts.map +1 -1
  68. package/lib/utils/mediaSources.d.ts.map +1 -1
  69. package/lib/utils/mediaSources.js +1 -3
  70. package/lib/utils/types.d.ts.map +1 -1
  71. package/lib/version.js +2 -2
  72. package/package.json +3 -3
  73. package/src/Player.ts +10 -10
  74. package/src/__tests__/Player.test.ts +33 -10
  75. package/src/index.core.ts +10 -1
  76. package/src/index.plugins.ts +35 -35
  77. package/src/playback/BasePlayback.ts +1 -1
  78. package/src/playback/__tests__/HTML5Video.test.ts +10 -4
  79. package/src/playback/dash-playback/__tests__/DashPlayback.test.ts +10 -38
  80. package/src/playback/hls-playback/__tests__/HlsPlayback.test.ts +12 -45
  81. package/src/playback/types.ts +0 -1
  82. package/src/playback.types.ts +1 -2
  83. package/src/plugins/audio-selector/AudioTracks.ts +1 -1
  84. package/src/plugins/audio-selector/__tests__/AudioTracks.test.ts +30 -11
  85. package/src/plugins/bottom-gear/BottomGear.ts +3 -2
  86. package/src/plugins/clappr-nerd-stats/NerdStats.ts +1 -1
  87. package/src/plugins/clappr-nerd-stats/speedtest/index.ts +104 -82
  88. package/src/plugins/clappr-nerd-stats/speedtest/types.ts +3 -3
  89. package/src/plugins/clappr-nerd-stats/utils.ts +2 -2
  90. package/src/plugins/clappr-stats/__tests__/ClapprStats.test.ts +30 -18
  91. package/src/plugins/clips/utils.ts +5 -1
  92. package/src/plugins/cmcd-config/CmcdConfig.ts +1 -1
  93. package/src/plugins/error-screen/__tests__/ErrorScreen.test.ts +21 -15
  94. package/src/plugins/favicon/Favicon.ts +73 -49
  95. package/src/plugins/google-analytics/GoogleAnalytics.ts +93 -58
  96. package/src/plugins/kibo/index.ts +183 -109
  97. package/src/plugins/level-selector/QualityLevels.ts +2 -2
  98. package/src/plugins/logo/Logo.ts +134 -105
  99. package/src/plugins/logo/utils/index.ts +27 -20
  100. package/src/plugins/media-control/MediaControl.ts +12 -6
  101. package/src/plugins/multi-camera/MultiCamera.ts +218 -157
  102. package/src/plugins/picture-in-picture/PictureInPicture.ts +41 -37
  103. package/src/plugins/playback-rate/__tests__/PlaybackRate.test.ts +25 -11
  104. package/src/plugins/poster/__tests__/Poster.test.ts +8 -9
  105. package/src/plugins/share/Share.ts +85 -60
  106. package/src/plugins/skip-time/SkipTime.ts +5 -1
  107. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +8 -5
  108. package/src/plugins/subtitles/ClosedCaptions.ts +7 -5
  109. package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +0 -1
  110. package/src/plugins/thumbnails/Thumbnails.ts +22 -21
  111. package/src/plugins/thumbnails/__tests__/Thumbnails.test.ts +14 -7
  112. package/src/plugins/thumbnails/utils.ts +3 -1
  113. package/src/plugins/typings/globals.d.ts +7 -7
  114. package/src/plugins/typings/workers.d.ts +3 -3
  115. package/src/plugins/utils/fullscreen.ts +2 -2
  116. package/src/plugins/utils.ts +17 -13
  117. package/src/plugins/vast-ads/VastAds.ts +4 -5
  118. package/src/plugins/vast-ads/loaderxml.ts +142 -101
  119. package/src/plugins/vast-ads/roll.ts +381 -284
  120. package/src/plugins/vast-ads/rollmanager.ts +214 -170
  121. package/src/plugins/vast-ads/sctemanager.ts +66 -48
  122. package/src/plugins/vast-ads/types.ts +15 -9
  123. package/src/plugins/vast-ads/urlhandler.ts +18 -13
  124. package/src/plugins/vast-ads/xmlhttprequest.ts +25 -20
  125. package/src/plugins/vast-ads/xmlmerge.ts +42 -32
  126. package/src/plugins/video360/VRControls.js +50 -42
  127. package/src/plugins/video360/VREffect.js +298 -206
  128. package/src/plugins/video360/Video360.js +553 -423
  129. package/src/plugins/video360/orbit-oriention-controls.js +526 -421
  130. package/src/plugins/video360/utils.js +18 -18
  131. package/src/types.ts +5 -3
  132. package/src/typings/@clappr/core/error_mixin.d.ts +9 -9
  133. package/src/typings/@clappr/core/index.d.ts +1 -3
  134. package/src/typings/@clappr/core/playback.d.ts +3 -3
  135. package/src/typings/@clappr/index.d.ts +1 -1
  136. package/src/typings/globals.d.ts +15 -15
  137. package/src/utils/__tests__/mediaSources.test.ts +42 -26
  138. package/src/utils/clickaway.ts +24 -24
  139. package/src/utils/errors.ts +2 -2
  140. package/src/utils/mediaSources.ts +5 -4
  141. package/src/utils/types.ts +1 -1
  142. package/src/version.ts +2 -2
  143. package/tsconfig.tsbuildinfo +1 -1
@@ -1,237 +1,266 @@
1
- import { UIContainerPlugin, Events, template as t, Container } from '@clappr/core';
1
+ import {
2
+ UIContainerPlugin,
3
+ Events,
4
+ template as t,
5
+ Container,
6
+ } from '@clappr/core'
2
7
 
3
- import { CLAPPR_VERSION } from '../../build.js';
4
- import { calculateSize } from './utils/index.js';
5
- import { ZeptoResult } from '../../types.js';
8
+ import { CLAPPR_VERSION } from '../../build.js'
9
+ import { calculateSize } from './utils/index.js'
10
+ import { ZeptoResult } from '../../types.js'
6
11
 
7
- import logoHTML from '../../../assets/logo/templates/logo.ejs';
8
- import '../../../assets/logo/styles/logo.scss';
12
+ import logoHTML from '../../../assets/logo/templates/logo.ejs'
13
+ import '../../../assets/logo/styles/logo.scss'
9
14
 
10
- type PositionStyleAttr = 'top' | 'bottom' | 'left' | 'right';
15
+ type PositionStyleAttr = 'top' | 'bottom' | 'left' | 'right'
11
16
 
12
17
  type LogoOptions = {
13
18
  // TODO check
14
- width?: number;
15
- height?: number;
16
- top?: number;
17
- bottom?: number;
18
- left?: number;
19
- right?: number;
20
- objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
21
- };
19
+ width?: number
20
+ height?: number
21
+ top?: number
22
+ bottom?: number
23
+ left?: number
24
+ right?: number
25
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down'
26
+ }
22
27
 
23
28
  /**
24
29
  * `PLUGIN` that adds custom logo to the player.
25
30
  * @beta
26
31
  */
27
32
  export class Logo extends UIContainerPlugin {
28
- private hasStartedPlaying = false;
33
+ private hasStartedPlaying = false
29
34
 
30
- private $logoContainer: ZeptoResult | null = null;
35
+ private $logoContainer: ZeptoResult | null = null
31
36
 
32
37
  get name() {
33
- return 'logo';
38
+ return 'logo'
34
39
  }
35
40
 
36
41
  get supportedVersion() {
37
- return { min: CLAPPR_VERSION };
42
+ return { min: CLAPPR_VERSION }
38
43
  }
39
44
 
40
45
  get template() {
41
- return t(logoHTML);
46
+ return t(logoHTML)
42
47
  }
43
48
 
44
49
  override get attributes() {
45
50
  return {
46
- 'class': 'player-logo',
47
- 'data-logo': ''
48
- };
51
+ class: 'player-logo',
52
+ 'data-logo': '',
53
+ }
49
54
  }
50
55
 
51
56
  private get shouldRender() {
52
- return !!this.options.logo && !!this.options.logo.path;
57
+ return !!this.options.logo && !!this.options.logo.path
53
58
  }
54
59
 
55
60
  override bindEvents() {
56
- window.addEventListener('resize', this.setPosition);
57
- this.listenTo(this.container, Events.CONTAINER_RESIZE, this.setPosition);
58
- this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop);
59
- this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay);
60
- this.listenTo(this.container, Events.CONTAINER_LOADEDMETADATA, this.setPosition);
61
+ window.addEventListener('resize', this.setPosition)
62
+ this.listenTo(this.container, Events.CONTAINER_RESIZE, this.setPosition)
63
+ this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)
64
+ this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)
65
+ this.listenTo(
66
+ this.container,
67
+ Events.CONTAINER_LOADEDMETADATA,
68
+ this.setPosition,
69
+ )
61
70
  }
62
71
 
63
72
  override stopListening() {
64
- window.removeEventListener('resize', this.setPosition);
73
+ window.removeEventListener('resize', this.setPosition)
65
74
  // @ts-ignore
66
- return super.stopListening();
75
+ return super.stopListening()
67
76
  }
68
77
 
69
78
  private onPlay() {
70
- this.hasStartedPlaying = true;
71
- this.setPosition();
79
+ this.hasStartedPlaying = true
80
+ this.setPosition()
72
81
  }
73
82
 
74
83
  private onStop() {
75
- this.hasStartedPlaying = false;
76
- this.update();
84
+ this.hasStartedPlaying = false
85
+ this.update()
77
86
  }
78
87
 
79
88
  private update() {
80
89
  if (!this.shouldRender) {
81
- return;
90
+ return
82
91
  }
83
92
 
84
93
  if (!this.hasStartedPlaying) {
85
- this.$el.hide();
94
+ this.$el.hide()
86
95
  } else {
87
- this.$el.show();
96
+ this.$el.show()
88
97
  }
89
98
  }
90
99
 
91
100
  constructor(container: Container) {
92
- super(container);
93
- this.setPosition = this.setPosition.bind(this);
94
- this.hasStartedPlaying = false;
101
+ super(container)
102
+ this.setPosition = this.setPosition.bind(this)
103
+ this.hasStartedPlaying = false
95
104
  if (!this.options.logo) {
96
- this.disable();
105
+ this.disable()
97
106
 
98
- return;
107
+ return
99
108
  }
100
- this.render();
109
+ this.render()
101
110
  }
102
111
 
103
112
  override render() {
104
113
  if (!this.shouldRender) {
105
- return this;
114
+ return this
106
115
  }
107
- this.$el.html(this.template());
116
+ this.$el.html(this.template())
108
117
 
109
- this.setLogoImgAttrs();
110
- this.container.$el.append(this.$el.get(0));
111
- this.update();
118
+ this.setLogoImgAttrs()
119
+ this.container.$el.append(this.$el.get(0))
120
+ this.update()
112
121
 
113
- return this;
122
+ return this
114
123
  }
115
124
 
116
125
  private setLogoImgAttrs() {
117
- const { logo: { path: imgUrl, width = 60, height = 60 } } = this.options;
126
+ const {
127
+ logo: { path: imgUrl, width = 60, height = 60 },
128
+ } = this.options
118
129
 
119
- this.$logoContainer = this.$el.find('.clappr-logo');
120
- const $logo = this.$logoContainer.find('.clappr-logo-img');
130
+ this.$logoContainer = this.$el.find('.clappr-logo')
131
+ const $logo = this.$logoContainer.find('.clappr-logo-img')
121
132
 
122
133
  $logo.attr({
123
- 'src': `${imgUrl}`,
124
- 'style': `width: ${width}px;height: ${height}px;`
125
- });
134
+ src: `${imgUrl}`,
135
+ style: `width: ${width}px;height: ${height}px;`,
136
+ })
126
137
  }
127
138
 
128
- private setLogoWidth(size: { width: number, height: number }) {
129
- let { logo: { width = 60, height = 60, objectFit = 'contain' } } = this.options;
130
- const $logo = this.$logoContainer.find('.clappr-logo-img');
139
+ private setLogoWidth(size: { width: number; height: number }) {
140
+ let {
141
+ logo: { width = 60, height = 60, objectFit = 'contain' },
142
+ } = this.options
143
+ const $logo = this.$logoContainer.find('.clappr-logo-img')
131
144
 
132
145
  // TODO size must always be defined
133
146
  if (size) {
134
- const logoWidthTimes = Math.floor(size.width / width);
135
- const logoHeightTimes = Math.floor(size.height / height);
147
+ const logoWidthTimes = Math.floor(size.width / width)
148
+ const logoHeightTimes = Math.floor(size.height / height)
136
149
 
137
150
  if (logoHeightTimes < 4) {
138
- let maxTimes = logoHeightTimes;
151
+ let maxTimes = logoHeightTimes
139
152
 
140
153
  if (logoWidthTimes < 4) {
141
- maxTimes = logoWidthTimes < logoHeightTimes ? logoWidthTimes : logoHeightTimes;
154
+ maxTimes =
155
+ logoWidthTimes < logoHeightTimes ? logoWidthTimes : logoHeightTimes
142
156
  }
143
157
  switch (maxTimes) {
144
158
  case 0:
145
159
  case 1:
146
- maxTimes = 2;
147
- break;
160
+ maxTimes = 2
161
+ break
148
162
  case 2:
149
- maxTimes = 1.5;
150
- break;
163
+ maxTimes = 1.5
164
+ break
151
165
  case 3:
152
- maxTimes = 1;
153
- break;
166
+ maxTimes = 1
167
+ break
154
168
 
155
169
  default:
156
- break;
170
+ break
157
171
  }
158
- width /= maxTimes;
159
- height /= maxTimes;
172
+ width /= maxTimes
173
+ height /= maxTimes
160
174
  } else {
161
175
  if (logoWidthTimes < 4) {
162
- let maxTimes = 1;
176
+ let maxTimes = 1
163
177
 
164
178
  switch (logoWidthTimes) {
165
179
  case 0:
166
180
  case 1:
167
- maxTimes = 2;
168
- break;
181
+ maxTimes = 2
182
+ break
169
183
  case 2:
170
- maxTimes = 1.5;
171
- break;
184
+ maxTimes = 1.5
185
+ break
172
186
  case 3:
173
- maxTimes = 1;
174
- break;
187
+ maxTimes = 1
188
+ break
175
189
 
176
190
  default:
177
- break;
191
+ break
178
192
  }
179
- width /= maxTimes;
180
- height /= maxTimes;
193
+ width /= maxTimes
194
+ height /= maxTimes
181
195
  }
182
196
  }
183
197
  }
184
198
  $logo.attr({
185
- 'style': `width: ${width}px;height: ${height}px;object-fit: ${objectFit}`
186
- });
199
+ style: `width: ${width}px;height: ${height}px;object-fit: ${objectFit}`,
200
+ })
187
201
  }
188
202
 
189
203
  private setPosition() {
190
204
  if (!this.shouldRender) {
191
- return;
205
+ return
192
206
  }
193
- const $el = this.container.$el;
194
- const targetRect = $el.get(0).getBoundingClientRect();
195
- const $video = $el.find('video[data-html5-video]');
207
+ const $el = this.container.$el
208
+ const targetRect = $el.get(0).getBoundingClientRect()
209
+ const $video = $el.find('video[data-html5-video]')
196
210
 
197
211
  if (!$video.get(0)) {
198
- return;
212
+ return
199
213
  }
200
- const { videoWidth, videoHeight } = $video.get(0);
214
+ const { videoWidth, videoHeight } = $video.get(0)
201
215
 
202
216
  const dimensions = calculateSize({
203
217
  dom: {
204
218
  width: targetRect.width,
205
- height: targetRect.height
219
+ height: targetRect.height,
206
220
  },
207
221
  media: {
208
222
  width: videoWidth,
209
- height: videoHeight
210
- }
211
- });
223
+ height: videoHeight,
224
+ },
225
+ })
212
226
 
213
- const { logo } = this.options;
214
- const { letterboxing: { vertical, horizontal } } = dimensions;
227
+ const { logo } = this.options
228
+ const {
229
+ letterboxing: { vertical, horizontal },
230
+ } = dimensions
215
231
 
216
232
  if (dimensions.media && dimensions.media.width && dimensions.media.height) {
217
- this.setLogoWidth({ width: dimensions.media.width, height: dimensions.media.height });
233
+ this.setLogoWidth({
234
+ width: dimensions.media.width,
235
+ height: dimensions.media.height,
236
+ })
218
237
  }
219
238
 
220
- const el = this.$logoContainer.get(0);
239
+ const el = this.$logoContainer.get(0)
221
240
 
222
- this.setStyles(logo, ['top', 'bottom'], el, vertical);
223
- this.setStyles(logo, ['left', 'right'], el, horizontal);
241
+ this.setStyles(logo, ['top', 'bottom'], el, vertical)
242
+ this.setStyles(logo, ['left', 'right'], el, horizontal)
224
243
 
225
- this.update();
244
+ this.update()
226
245
  }
227
246
 
228
- private setStyles(opts: LogoOptions, props: PositionStyleAttr[], el: HTMLElement, value: number) {
229
- props.forEach(p => this.setStyle(opts, p, el, value));
247
+ private setStyles(
248
+ opts: LogoOptions,
249
+ props: PositionStyleAttr[],
250
+ el: HTMLElement,
251
+ value: number,
252
+ ) {
253
+ props.forEach((p) => this.setStyle(opts, p, el, value))
230
254
  }
231
255
 
232
- private setStyle(opts: LogoOptions, p: PositionStyleAttr, el: HTMLElement, value: number) {
256
+ private setStyle(
257
+ opts: LogoOptions,
258
+ p: PositionStyleAttr,
259
+ el: HTMLElement,
260
+ value: number,
261
+ ) {
233
262
  if (opts[p]) {
234
- el.style[p] = `${opts[p] + value}px`;
263
+ el.style[p] = `${opts[p] + value}px`
235
264
  }
236
265
  }
237
266
  }
@@ -1,46 +1,53 @@
1
-
2
1
  type CalculateSizeInput = {
3
2
  dom: {
4
- width: number;
5
- height: number;
6
- };
3
+ width: number
4
+ height: number
5
+ }
7
6
  media: {
8
- width: number;
9
- height: number;
10
- };
7
+ width: number
8
+ height: number
9
+ }
11
10
  }
12
11
  export function calculateSize(original: CalculateSizeInput) {
13
12
  const transformed = {
14
13
  media: {
15
14
  width: 0,
16
- height: 0
15
+ height: 0,
17
16
  },
18
17
  letterboxing: {
19
18
  horizontal: 0,
20
- vertical: 0
21
- }
22
- };
19
+ vertical: 0,
20
+ },
21
+ }
23
22
 
24
23
  // Freeze viewport height and scale video to fit vertically
25
- transformed.media.width = (original.media.width * original.dom.height / original.media.height);
26
- transformed.media.height = (original.media.height * transformed.media.width / original.media.width);
24
+ transformed.media.width =
25
+ (original.media.width * original.dom.height) / original.media.height
26
+ transformed.media.height =
27
+ (original.media.height * transformed.media.width) / original.media.width
27
28
 
28
29
  // If it didnt't fit, freeze viewport width and scale video to fit horizontally
29
30
  if (transformed.media.width > original.dom.width) {
30
- transformed.media.height = (original.media.height * original.dom.width / original.media.width);
31
- transformed.media.width = (original.media.width * transformed.media.height / original.media.height);
31
+ transformed.media.height =
32
+ (original.media.height * original.dom.width) / original.media.width
33
+ transformed.media.width =
34
+ (original.media.width * transformed.media.height) / original.media.height
32
35
  }
33
36
  // Calculate paddings for vertical or horizontal letterboxing
34
37
  if (transformed.media.width < original.dom.width) {
35
- transformed.letterboxing.horizontal = Math.floor((original.dom.width - transformed.media.width ) / 2);
38
+ transformed.letterboxing.horizontal = Math.floor(
39
+ (original.dom.width - transformed.media.width) / 2,
40
+ )
36
41
  } else {
37
42
  if (transformed.media.height < original.dom.height) {
38
- transformed.letterboxing.vertical = Math.floor((original.dom.height - transformed.media.height) / 2);
43
+ transformed.letterboxing.vertical = Math.floor(
44
+ (original.dom.height - transformed.media.height) / 2,
45
+ )
39
46
  }
40
47
  }
41
48
 
42
- transformed.media.width = Math.floor(transformed.media.width);
43
- transformed.media.height = Math.floor(transformed.media.height);
49
+ transformed.media.width = Math.floor(transformed.media.width)
50
+ transformed.media.height = Math.floor(transformed.media.height)
44
51
 
45
- return transformed;
52
+ return transformed
46
53
  }
@@ -470,10 +470,8 @@ export class MediaControl extends UICorePlugin {
470
470
  Events.CONTAINER_DBLCLICK,
471
471
  this.toggleFullscreen,
472
472
  )
473
- this.listenTo(
474
- this.core.activeContainer,
475
- Events.CONTAINER_CLICK,
476
- () => this.clickaway(this.core.activeContainer.$el[0]),
473
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_CLICK, () =>
474
+ this.clickaway(this.core.activeContainer.$el[0]),
477
475
  )
478
476
  this.listenTo(
479
477
  this.core.activeContainer,
@@ -529,8 +527,16 @@ export class MediaControl extends UICorePlugin {
529
527
  this.listenTo(this.core, Events.CONTAINER_DESTROYED, () => {
530
528
  this.cancelRenderTimer()
531
529
  })
532
- this.listenTo(this.core.activeContainer, Events.CONTAINER_MOUSE_ENTER, this.show)
533
- this.listenTo(this.core.activeContainer, Events.CONTAINER_MOUSE_LEAVE, this.delayHide)
530
+ this.listenTo(
531
+ this.core.activeContainer,
532
+ Events.CONTAINER_MOUSE_ENTER,
533
+ this.show,
534
+ )
535
+ this.listenTo(
536
+ this.core.activeContainer,
537
+ Events.CONTAINER_MOUSE_LEAVE,
538
+ this.delayHide,
539
+ )
534
540
 
535
541
  this.listenTo(this.core.activeContainer, Events.CONTAINER_DESTROYED, () => {
536
542
  this.clickaway(null)