@gcorevideo/player 2.22.8 → 2.22.9

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.
@@ -13320,7 +13320,7 @@ class ClipsPlugin extends UICorePlugin {
13320
13320
 
13321
13321
  const templateHtml$1 = "<ul class=\"context-menu-list\">\n <% if(options) { %>\n <% for (var i = 0; i < options.length; i++) { %>\n <li class=\"context-menu-list-item <%= options[i].class %>\"\n data-<%= options[i].name %>><%= options[i].label %></li>\n <% } %>\n <% } %>\n</ul>\n";
13322
13322
 
13323
- var version$1 = "2.22.8";
13323
+ var version$1 = "2.22.9";
13324
13324
 
13325
13325
  var packages = {
13326
13326
  "node_modules/@clappr/core": {
@@ -16017,6 +16017,7 @@ class PlaybackRate extends UICorePlugin {
16017
16017
  // Saved when an ad starts to restore after it finishes
16018
16018
  // private prevSelectedRate: string | undefined
16019
16019
  selectedRate = DEFAULT_PLAYBACK_RATE;
16020
+ metadataLoaded = false;
16020
16021
  /**
16021
16022
  * @internal
16022
16023
  */
@@ -16073,6 +16074,7 @@ class PlaybackRate extends UICorePlugin {
16073
16074
  this.listenTo(gear, GearEvents.RENDERED, this.onGearRendered);
16074
16075
  }
16075
16076
  onActiveContainerChange() {
16077
+ this.metadataLoaded = false;
16076
16078
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_STOP, this.onStop);
16077
16079
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay);
16078
16080
  this.listenTo(this.core.activePlayback, PlaybackEvents.PLAYBACK_RATE_CHANGED, this.onPlaybackRateChange);
@@ -16102,6 +16104,7 @@ class PlaybackRate extends UICorePlugin {
16102
16104
  })));
16103
16105
  }
16104
16106
  onMetaDataLoaded() {
16107
+ this.metadataLoaded = true;
16105
16108
  this.render();
16106
16109
  }
16107
16110
  allRateElements() {
@@ -16122,9 +16125,13 @@ class PlaybackRate extends UICorePlugin {
16122
16125
  }
16123
16126
  }
16124
16127
  shouldMount() {
16125
- if (!this.core.activePlayback) {
16128
+ if (!this.core.activePlayback || !this.metadataLoaded) {
16126
16129
  return false;
16127
16130
  }
16131
+ trace(`${T$7} shouldMount`, {
16132
+ playbackType: this.core.activePlayback.getPlaybackType(),
16133
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
16134
+ });
16128
16135
  if (this.core.activePlayback.getPlaybackType() === Playback.LIVE &&
16129
16136
  !this.core.activePlayback.dvrEnabled) {
16130
16137
  return false;
@@ -46,6 +46,7 @@ export type PlaybackRateSettings = {
46
46
  */
47
47
  export declare class PlaybackRate extends UICorePlugin {
48
48
  private selectedRate;
49
+ private metadataLoaded;
49
50
  /**
50
51
  * @internal
51
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PlaybackRate.d.ts","sourceRoot":"","sources":["../../../src/plugins/playback-rate/PlaybackRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAsB,IAAI,EAAK,MAAM,cAAc,CAAA;AAiBhF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAI5C,OAAO,CAAC,YAAY,CAAwB;IAE5C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAE7C,IAAI,EAAE,IAAI;IAOtB,OAAO,KAAK,aAAa,GAExB;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,KAAK;IAsBb,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,WAAW;IAenB;;OAEG;IACM,MAAM;IAoCf,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,qBAAqB;CAM9B"}
1
+ {"version":3,"file":"PlaybackRate.d.ts","sourceRoot":"","sources":["../../../src/plugins/playback-rate/PlaybackRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAsB,IAAI,EAAK,MAAM,cAAc,CAAA;AAiBhF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAI5C,OAAO,CAAC,YAAY,CAAwB;IAE5C,OAAO,CAAC,cAAc,CAAQ;IAE9B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAE7C,IAAI,EAAE,IAAI;IAOtB,OAAO,KAAK,aAAa,GAExB;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,KAAK;IAsBb,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACM,MAAM;IAoCf,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,qBAAqB;CAM9B"}
@@ -56,6 +56,7 @@ export class PlaybackRate extends UICorePlugin {
56
56
  // Saved when an ad starts to restore after it finishes
57
57
  // private prevSelectedRate: string | undefined
58
58
  selectedRate = DEFAULT_PLAYBACK_RATE;
59
+ metadataLoaded = false;
59
60
  /**
60
61
  * @internal
61
62
  */
@@ -114,6 +115,7 @@ export class PlaybackRate extends UICorePlugin {
114
115
  }
115
116
  onActiveContainerChange() {
116
117
  trace(`${T} onActiveContainerChange`);
118
+ this.metadataLoaded = false;
117
119
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_STOP, this.onStop);
118
120
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay);
119
121
  this.listenTo(this.core.activePlayback, PlaybackEvents.PLAYBACK_RATE_CHANGED, this.onPlaybackRateChange);
@@ -146,6 +148,7 @@ export class PlaybackRate extends UICorePlugin {
146
148
  }
147
149
  onMetaDataLoaded() {
148
150
  trace(`${T} onMetaDataLoaded`);
151
+ this.metadataLoaded = true;
149
152
  this.render();
150
153
  }
151
154
  allRateElements() {
@@ -167,9 +170,13 @@ export class PlaybackRate extends UICorePlugin {
167
170
  }
168
171
  }
169
172
  shouldMount() {
170
- if (!this.core.activePlayback) {
173
+ if (!this.core.activePlayback || !this.metadataLoaded) {
171
174
  return false;
172
175
  }
176
+ trace(`${T} shouldMount`, {
177
+ playbackType: this.core.activePlayback.getPlaybackType(),
178
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
179
+ });
173
180
  if (this.core.activePlayback.getPlaybackType() === Playback.LIVE &&
174
181
  !this.core.activePlayback.dvrEnabled) {
175
182
  return false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.22.8",
3
+ "version": "2.22.9",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -235,8 +235,5 @@ describe('MediaControl', () => {
235
235
  })
236
236
 
237
237
  function arraySubtract<T extends string>(arr1: T[], arr2: T[]) {
238
- // const ret = arr1.filter((item) => !arr2.includes(item))
239
238
  return arr1.filter((item) => !arr2.includes(item))
240
- // console.log('arraySubtract %s - %s: %s', arr1, arr2, ret)
241
- // return ret
242
239
  }
@@ -82,6 +82,8 @@ export class PlaybackRate extends UICorePlugin {
82
82
 
83
83
  private selectedRate = DEFAULT_PLAYBACK_RATE
84
84
 
85
+ private metadataLoaded = false
86
+
85
87
  /**
86
88
  * @internal
87
89
  */
@@ -159,6 +161,7 @@ export class PlaybackRate extends UICorePlugin {
159
161
 
160
162
  private onActiveContainerChange() {
161
163
  trace(`${T} onActiveContainerChange`)
164
+ this.metadataLoaded = false
162
165
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_STOP, this.onStop)
163
166
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay)
164
167
  this.listenTo(
@@ -207,6 +210,7 @@ export class PlaybackRate extends UICorePlugin {
207
210
 
208
211
  private onMetaDataLoaded() {
209
212
  trace(`${T} onMetaDataLoaded`)
213
+ this.metadataLoaded = true
210
214
  this.render()
211
215
  }
212
216
 
@@ -236,10 +240,15 @@ export class PlaybackRate extends UICorePlugin {
236
240
  }
237
241
 
238
242
  private shouldMount() {
239
- if (!this.core.activePlayback) {
243
+ if (!this.core.activePlayback || !this.metadataLoaded) {
240
244
  return false
241
245
  }
242
246
 
247
+ trace(`${T} shouldMount`, {
248
+ playbackType: this.core.activePlayback.getPlaybackType(),
249
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
250
+ })
251
+
243
252
  if (
244
253
  this.core.activePlayback.getPlaybackType() === Playback.LIVE &&
245
254
  !this.core.activePlayback.dvrEnabled
@@ -7,6 +7,7 @@ import {
7
7
  } from '../../../testUtils'
8
8
  import { Events } from '@clappr/core'
9
9
  import { GearEvents } from '../../bottom-gear/BottomGear'
10
+ import { PlaybackType } from '../../../types'
10
11
  // import { Logger, LogTracer, setTracer } from '@gcorevideo/utils'
11
12
 
12
13
  // Logger.enable('*')
@@ -19,6 +20,7 @@ describe('PlaybackRate', () => {
19
20
  let playbackRate: PlaybackRate
20
21
  beforeEach(() => {
21
22
  core = createMockCore()
23
+ setupPlaybackType(core, 'vod')
22
24
  mediaControl = createMockMediaControl(core)
23
25
  bottomGear = createMockBottomGear(core)
24
26
  core.getPlugin.mockImplementation((name: string) => {
@@ -36,11 +38,9 @@ describe('PlaybackRate', () => {
36
38
  playbackRate = new PlaybackRate(core)
37
39
  core.emit(Events.CORE_READY)
38
40
  mediaControl.trigger(Events.MEDIACONTROL_RENDERED)
39
- core.activePlayback.getPlaybackType.mockReturnValue('live')
40
- core.activeContainer.getPlaybackType.mockReturnValue('live')
41
- core.getPlaybackType.mockReturnValue('live')
42
- core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED)
43
41
  bottomGear.trigger(GearEvents.RENDERED)
42
+ setupPlaybackType(core, 'live')
43
+ core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED)
44
44
  })
45
45
  it('should render', () => {
46
46
  expect(playbackRate.el.innerHTML).toMatchSnapshot()
@@ -137,9 +137,7 @@ describe('PlaybackRate', () => {
137
137
  playbackRate = new PlaybackRate(core)
138
138
  core.emit(Events.CORE_READY)
139
139
  mediaControl.trigger(Events.MEDIACONTROL_RENDERED)
140
- core.activePlayback.getPlaybackType.mockReturnValue('live')
141
- core.activeContainer.getPlaybackType.mockReturnValue('live')
142
- core.getPlaybackType.mockReturnValue('live')
140
+ setupPlaybackType(core, 'live')
143
141
  core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED)
144
142
  bottomGear.trigger(GearEvents.RENDERED)
145
143
  core.activePlayback.dvrEnabled = true
@@ -180,3 +178,9 @@ expect.extend({
180
178
  }
181
179
  },
182
180
  })
181
+
182
+ function setupPlaybackType(core: any, type: PlaybackType) {
183
+ core.activePlayback.getPlaybackType.mockReturnValue(type)
184
+ core.activeContainer.getPlaybackType.mockReturnValue(type)
185
+ core.getPlaybackType.mockReturnValue(type)
186
+ }