@gcorevideo/player 2.22.27 → 2.22.29

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 (34) hide show
  1. package/assets/media-control/media-control.scss +2 -6
  2. package/assets/seek-time/seek-time.html +2 -2
  3. package/assets/seek-time/seek-time.scss +4 -4
  4. package/dist/core.js +1 -1
  5. package/dist/index.css +1408 -1411
  6. package/dist/index.js +100 -135
  7. package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
  8. package/lib/plugins/clappr-nerd-stats/NerdStats.js +3 -7
  9. package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.d.ts.map +1 -1
  10. package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.js +2 -3
  11. package/lib/plugins/clappr-nerd-stats/speedtest/index.d.ts.map +1 -1
  12. package/lib/plugins/clappr-nerd-stats/speedtest/index.js +1 -8
  13. package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
  14. package/lib/plugins/clappr-stats/ClapprStats.js +8 -2
  15. package/lib/plugins/media-control/MediaControl.d.ts +0 -1
  16. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  17. package/lib/plugins/media-control/MediaControl.js +9 -23
  18. package/lib/plugins/seek-time/SeekTime.d.ts +15 -6
  19. package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
  20. package/lib/plugins/seek-time/SeekTime.js +17 -32
  21. package/lib/testUtils.d.ts +1 -0
  22. package/lib/testUtils.d.ts.map +1 -1
  23. package/lib/testUtils.js +1 -0
  24. package/package.json +1 -1
  25. package/src/plugins/clappr-nerd-stats/NerdStats.ts +3 -7
  26. package/src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts +2 -3
  27. package/src/plugins/clappr-nerd-stats/speedtest/index.ts +1 -9
  28. package/src/plugins/clappr-stats/ClapprStats.ts +10 -4
  29. package/src/plugins/media-control/MediaControl.ts +14 -25
  30. package/src/plugins/media-control/__tests__/MediaControl.test.ts +16 -0
  31. package/src/plugins/media-control/__tests__/__snapshots__/MediaControl.test.ts.snap +70 -0
  32. package/src/plugins/seek-time/SeekTime.ts +37 -50
  33. package/src/testUtils.ts +1 -0
  34. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAiCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAcf,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;CAU3B"}
1
+ {"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAiCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,aAAa;IAkFrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAcf,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;CAU3B"}
@@ -167,10 +167,8 @@ export class NerdStats extends UICorePlugin {
167
167
  this.$el.show();
168
168
  this.statsBoxElem.scrollTop(this.statsBoxElem.scrollTop());
169
169
  this.open = true;
170
- this.refreshSpeedTest();
171
170
  initSpeedTest(this.speedtestMetrics)
172
171
  .then(() => {
173
- trace(`${T} show initSpeedTest ready`);
174
172
  startSpeedtest();
175
173
  })
176
174
  .catch((e) => {
@@ -200,7 +198,6 @@ export class NerdStats extends UICorePlugin {
200
198
  .text(this.metrics.general.resolution.height);
201
199
  }
202
200
  estimateQuality() {
203
- trace(`${T} estimateQuality`);
204
201
  const videoQualityNames = [
205
202
  'SD (480p)',
206
203
  'HD (720p)',
@@ -225,7 +222,6 @@ export class NerdStats extends UICorePlugin {
225
222
  prefix + videoQualityNames[liveQuality - 1];
226
223
  }
227
224
  updateMetrics(metrics) {
228
- trace(`${T} updateMetrics`, { custom: this.speedtestMetrics });
229
225
  Object.assign(this.metrics, metrics);
230
226
  this.metrics.custom = {
231
227
  ...this.speedtestMetrics,
@@ -373,9 +369,9 @@ export class NerdStats extends UICorePlugin {
373
369
  clearSpeedTestResults();
374
370
  drawSpeedTestResults();
375
371
  }, 200);
376
- // setTimeout(() => {
377
- // startSpeedtest()
378
- // }, 800)
372
+ setTimeout(() => {
373
+ startSpeedtest();
374
+ }, 800);
379
375
  }
380
376
  formatPlaybackName(playbackType) {
381
377
  switch (playbackType) {
@@ -1 +1 @@
1
- {"version":3,"file":"Speedtest.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;AAIrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,eAAe,CAAsB;IAE7C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAO;IAE/B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAO;IAErC,QAAQ;IAIR,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAY9C,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiCrC,YAAY,CAAC,MAAM,EAAE,MAAM;IAY3B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAM5B,iBAAiB;IAQjB,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAShC,YAAY,CAAC,MAAM,EAAE,cAAc;IA0KnC,KAAK;IAuEL,KAAK;IASL,OAAO,CAAC,UAAU;CAUnB"}
1
+ {"version":3,"file":"Speedtest.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;AAIrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,eAAe,CAAsB;IAE7C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAO;IAE/B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAO;IAErC,QAAQ;IAIR,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAY9C,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiCrC,YAAY,CAAC,MAAM,EAAE,MAAM;IAY3B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAM5B,iBAAiB;IAQjB,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAShC,YAAY,CAAC,MAAM,EAAE,cAAc;IA0KnC,KAAK;IAsEL,KAAK;IASL,OAAO,CAAC,UAAU;CAUnB"}
@@ -1,6 +1,6 @@
1
- import { reportError, trace } from '@gcorevideo/utils';
1
+ import { reportError } from '@gcorevideo/utils';
2
2
  import SpeedtestWorkerModule from '../../../../assets/clappr-nerd-stats/speedtest/speedtest.worker.js';
3
- const T = 'plugins.clappr_nerd_stats.speedtest.Speedtest';
3
+ // const T = 'plugins.clappr_nerd_stats.speedtest.Speedtest';
4
4
  export class Speedtest {
5
5
  worker = null;
6
6
  workerUrl = null;
@@ -311,7 +311,6 @@ export class Speedtest {
311
311
  }
312
312
  }
313
313
  this._state = 3;
314
- trace(`${T} start`, { state: this._state, server: this._selectedServer, settings: this._settings });
315
314
  // TODO don't run until properly initialized (url_ping, etc)
316
315
  this.worker.postMessage('start ' + JSON.stringify(this._settings));
317
316
  // ... [rest of the logic remains unchanged] ...
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAkC,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqC9C,wBAAgB,oBAAoB,SAoBnC;AAID,eAAO,MAAM,aAAa,kBAAmB,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAmF3E,CAAC;AAEF,eAAO,MAAM,aAAa,YAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,YAK1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,YAGjC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAGnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAkC,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqC9C,wBAAgB,oBAAoB,SAmBnC;AAID,eAAO,MAAM,aAAa,kBAAmB,gBAAgB,KAAG,OAAO,CAAC,IAAI,CA+E3E,CAAC;AAEF,eAAO,MAAM,aAAa,YAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,YAI1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,YAEjC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAGnD"}
@@ -1,9 +1,8 @@
1
- import { trace } from '@gcorevideo/utils';
2
1
  import { Speedtest } from './Speedtest.js';
3
2
  const DIGITS_THRESHOLD = 99999;
4
3
  const DEFAULT_DOWNLOAD_SPEED = '0.00';
5
4
  const DRAW_SIZE = 5;
6
- const T = 'plugins.clappr_nerd_stats.speedtest';
5
+ // const T = 'plugins.clappr_nerd_stats.speedtest';
7
6
  function limitDigits(value) {
8
7
  return value > DIGITS_THRESHOLD ? '> ' + DIGITS_THRESHOLD : value.toFixed(2);
9
8
  }
@@ -31,7 +30,6 @@ const getColor = (speedValue) => {
31
30
  }
32
31
  };
33
32
  export function drawSpeedTestResults() {
34
- trace(`${T} drawSpeedTestResults`);
35
33
  const canvas = document.getElementById('nerd-stats-speed-test-canvas');
36
34
  if (!canvas) {
37
35
  return;
@@ -54,7 +52,6 @@ export const initSpeedTest = (customMetrics) => {
54
52
  return inited;
55
53
  }
56
54
  inited = (async () => {
57
- trace(`${T} initSpeedTest run`);
58
55
  // TODO: fix server selection
59
56
  // const response = await fetch('https://iam.gcdn.co/info/json');
60
57
  // const data = await response.json();
@@ -109,7 +106,6 @@ export const initSpeedTest = (customMetrics) => {
109
106
  await fetch('https://iam.gcdn.co/info/json')
110
107
  .then(r => r.json())
111
108
  .then(data => {
112
- trace(`${T} initSpeedTest fetched`);
113
109
  const country = data['Server Country code'].toLowerCase();
114
110
  const server = serversList.find(s => s.country === country) || serversList[0];
115
111
  if (!server) {
@@ -117,7 +113,6 @@ export const initSpeedTest = (customMetrics) => {
117
113
  }
118
114
  speedTest.addTestPoint(server);
119
115
  speedTest.setSelectedServer(server);
120
- trace(`${T} initSpeedTest done`);
121
116
  });
122
117
  })();
123
118
  return inited;
@@ -128,13 +123,11 @@ export const stopSpeedtest = () => {
128
123
  }
129
124
  };
130
125
  export const startSpeedtest = () => {
131
- trace(`${T} startSpeedtest`);
132
126
  if (speedTest.getState() !== 3) {
133
127
  speedTest.start();
134
128
  }
135
129
  };
136
130
  export const clearSpeedTestResults = () => {
137
- trace(`${T} clearSpeedTestResults`);
138
131
  speedtestResults.splice(0, speedtestResults.length);
139
132
  };
140
133
  export function configureSpeedTest(servers) {
@@ -1 +1 @@
1
- {"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAwB,MAAM,cAAc,CAAA;AAU/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAMpD,cAAc,YAAY,CAAA;AAG1B,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,sBAAsB,CAAI;IAElC,OAAO,CAAC,OAAO,CAAmC;IAElD,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,OAAO,CAAQ;IAEvB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,GAAG;IASX,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,IAAI;gBAIA,SAAS,EAAE,SAAS;IAKhC;;OAEG;IACM,UAAU;IAmDnB;;OAEG;IACM,OAAO;IAKhB;;;OAGG;IACH,aAAa;IAIb,YAAY;IAIZ,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,aAAa;CA0BtB"}
1
+ {"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAwB,MAAM,cAAc,CAAA;AAU/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAMpD,cAAc,YAAY,CAAA;AAM1B,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,sBAAsB,CAAI;IAElC,OAAO,CAAC,OAAO,CAAmC;IAElD,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,OAAO,CAAQ;IAEvB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,GAAG;IASX,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,IAAI;gBAIA,SAAS,EAAE,SAAS;IAKhC;;OAEG;IACM,UAAU;IAqDnB;;OAEG;IACM,OAAO;IAKhB;;;OAGG;IACH,aAAa;IAIb,YAAY;IAIZ,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,aAAa;CA0BtB"}
@@ -3,6 +3,7 @@ import { CLAPPR_VERSION } from '../../build.js';
3
3
  import { ClapprStatsEvents, ClapprStatsChronograph, ClapprStatsCounter, } from './types.js';
4
4
  export * from './types.js';
5
5
  import { newMetrics } from './utils.js';
6
+ import { isFullscreen } from '../utils/fullscreen.js';
6
7
  /**
7
8
  * `PLUGIN` that measures data about playback, which can be useful for analyzing performance and UX.
8
9
  * @beta
@@ -78,7 +79,11 @@ export class ClapprStats extends ContainerPlugin {
78
79
  this.listenToOnce(this.container, CoreEvents.CONTAINER_STATE_BUFFERING, this.onBuffering);
79
80
  this.listenTo(this.container, CoreEvents.CONTAINER_SEEK, this.onSeek);
80
81
  this.listenTo(this.container, CoreEvents.CONTAINER_ERROR, () => this.inc(ClapprStatsCounter.Error));
81
- this.listenTo(this.container, CoreEvents.CONTAINER_FULLSCREEN, () => this.inc(ClapprStatsCounter.Fullscreen));
82
+ this.listenTo(this.container, CoreEvents.CONTAINER_FULLSCREEN, () => {
83
+ if (isFullscreen(this.container.el)) {
84
+ this.inc(ClapprStatsCounter.Fullscreen);
85
+ }
86
+ });
82
87
  this.listenTo(this.container, CoreEvents.CONTAINER_PLAYBACKDVRSTATECHANGED, (dvrInUse) => {
83
88
  dvrInUse && this.inc(ClapprStatsCounter.DvrUsage);
84
89
  });
@@ -146,8 +151,9 @@ export class ClapprStats extends ContainerPlugin {
146
151
  this.stopListening(this.container, CoreEvents.CONTAINER_TIMEUPDATE, this.onContainerUpdateWhilePlaying);
147
152
  }
148
153
  onSeek(e) {
154
+ const ms = e * 1000;
149
155
  this.inc(ClapprStatsCounter.Seek);
150
- this.metrics.extra.watchHistory.push([e * 1000, e * 1000]);
156
+ this.metrics.extra.watchHistory.push([ms, ms]);
151
157
  }
152
158
  onTimeUpdate(e) {
153
159
  const current = e.current * 1000, total = e.total * 1000, l = this.metrics.extra.watchHistory.length;
@@ -134,7 +134,6 @@ export declare class MediaControl extends UICorePlugin {
134
134
  'click [data-stop]': string;
135
135
  'click [data-playstop]': string;
136
136
  'click [data-fullscreen]': string;
137
- 'click .bar-container[data-seekbar]': string;
138
137
  'click .bar-container[data-volume]': string;
139
138
  'click .drawer-icon[data-volume]': string;
140
139
  'mouseenter .drawer-container[data-volume]': string;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
@@ -182,7 +182,7 @@ export class MediaControl extends UICorePlugin {
182
182
  'click [data-stop]': 'stop',
183
183
  'click [data-playstop]': 'togglePlayStop',
184
184
  'click [data-fullscreen]': 'handleFullScreenOnBtn',
185
- 'click .bar-container[data-seekbar]': 'seek',
185
+ // 'click .bar-container[data-seekbar]': 'seek', // This together with global window.bind causes duplicate seeks events
186
186
  'click .bar-container[data-volume]': 'onVolumeClick',
187
187
  'click .drawer-icon[data-volume]': 'toggleMute',
188
188
  'mouseenter .drawer-container[data-volume]': 'showVolumeBar',
@@ -489,12 +489,14 @@ export class MediaControl extends UICorePlugin {
489
489
  event && event.preventDefault();
490
490
  }
491
491
  stopDrag = (event) => {
492
- this.draggingSeekBar && this.seek(event);
492
+ if (this.draggingSeekBar) {
493
+ this.draggingSeekBar = false;
494
+ this.seek(event);
495
+ }
493
496
  this.$el.removeClass('dragging');
494
497
  this.$seekBarLoaded?.removeClass('media-control-notransition');
495
498
  this.$seekBarPosition?.removeClass('media-control-notransition');
496
499
  this.$seekBarScrubber?.removeClass('media-control-notransition dragging');
497
- this.draggingSeekBar = false;
498
500
  this.draggingVolumeBar = false;
499
501
  };
500
502
  updateDrag = (event) => {
@@ -506,8 +508,9 @@ export class MediaControl extends UICorePlugin {
506
508
  let pos = (offsetX / this.$seekBarContainer.width()) * 100;
507
509
  pos = Math.min(100, Math.max(pos, 0));
508
510
  this.setSeekPercentage(pos);
511
+ return;
509
512
  }
510
- else if (this.draggingVolumeBar) {
513
+ if (this.draggingVolumeBar) {
511
514
  event.preventDefault();
512
515
  this.setVolume(this.getVolumeFromUIEvent(event));
513
516
  }
@@ -677,13 +680,13 @@ export class MediaControl extends UICorePlugin {
677
680
  if (!this.settings.seekEnabled) {
678
681
  return;
679
682
  }
683
+ // TODO prevent double seek
680
684
  assert.ok(this.$seekBarContainer, 'seek bar container must be present');
681
685
  const offsetX = MediaControl.getPageX(event) - this.$seekBarContainer.offset().left;
682
686
  let pos = (offsetX / this.$seekBarContainer.width()) * 100;
683
687
  pos = Math.min(100, Math.max(pos, 0));
684
688
  this.core.activeContainer && this.core.activeContainer.seekPercentage(pos);
685
689
  this.setSeekPercentage(pos);
686
- return false;
687
690
  }
688
691
  setUserKeepVisible() {
689
692
  this.userKeepVisible = true;
@@ -756,13 +759,11 @@ export class MediaControl extends UICorePlugin {
756
759
  }
757
760
  }
758
761
  updateSettings() {
759
- trace(`${T} updateSettings`, { settings: this.settings });
760
762
  const newSettings = $.extend(true, {
761
763
  left: [],
762
764
  default: [],
763
765
  right: [],
764
766
  }, this.core.activeContainer.settings);
765
- trace(`${T} updateSettings`, { newSettings });
766
767
  newSettings.left.push('clips'); // TODO settings
767
768
  // TODO make order controlled via CSS
768
769
  newSettings.left = orderByOrderPattern([...newSettings.left, 'volume', 'clips'], LEFT_ORDER);
@@ -774,11 +775,6 @@ export class MediaControl extends UICorePlugin {
774
775
  newSettings.right = DEFAULT_SETTINGS.right; // TODO get from the options
775
776
  if ((!this.fullScreenOnVideoTagSupported && !fullscreenEnabled()) ||
776
777
  this.options.fullscreenDisable) {
777
- trace(`${T} updateSettings removing fullscreen`, {
778
- supported: this.fullScreenOnVideoTagSupported,
779
- enabled: Fullscreen.fullscreenEnabled(),
780
- optionsDisable: this.options.fullscreenDisable,
781
- });
782
778
  // remove fullscreen from settings if it is not available
783
779
  removeArrayItem(newSettings.default, 'fullscreen');
784
780
  removeArrayItem(newSettings.left, 'fullscreen');
@@ -841,7 +837,6 @@ export class MediaControl extends UICorePlugin {
841
837
  */
842
838
  mount(name, element) {
843
839
  const panel = this.getElementLocation(name);
844
- trace(`${T} mount`, { name, panel: !!panel });
845
840
  if (panel) {
846
841
  const current = panel.find(`[data-${name}]`);
847
842
  element.attr(`data-${name}`, '');
@@ -1037,14 +1032,11 @@ export class MediaControl extends UICorePlugin {
1037
1032
  * @internal
1038
1033
  */
1039
1034
  render() {
1040
- trace(`${T} render`, {
1041
- needsUpdate: this.hasUpdate,
1042
- metadataLoaded: this.metadataLoaded,
1043
- });
1044
1035
  if (!this.hasUpdate || !this.metadataLoaded) {
1045
1036
  return this;
1046
1037
  }
1047
1038
  const timeout = this.options.hideMediaControlDelay || 2000;
1039
+ trace(`${T} render`, { settings: this.settings });
1048
1040
  this.$el.html(MediaControl.template({ settings: this.settings }));
1049
1041
  // const style = Styler.getStyleFor(mediaControlStyle, { baseUrl: this.options.baseUrl });
1050
1042
  // this.$el.append(style[0]);
@@ -1167,12 +1159,6 @@ export class MediaControl extends UICorePlugin {
1167
1159
  return isFinite(this.core.activePlayback.getDuration());
1168
1160
  }
1169
1161
  getElementLocation(name) {
1170
- trace(`${T} getElementLocation`, {
1171
- name,
1172
- right: this.settings.right,
1173
- left: this.settings.left,
1174
- default: this.settings.default,
1175
- });
1176
1162
  if (this.settings.right?.includes(name)) {
1177
1163
  return this.getRightPanel();
1178
1164
  }
@@ -1,9 +1,22 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/seek-time/seek-time.scss';
3
3
  /**
4
- * `PLUGIN` that adds a seek time indicator to the media control UI.
4
+ * Configuration options for the SeekTime plugin.
5
5
  * @beta
6
6
  */
7
+ export type SeekTimeSettings = {
8
+ /**
9
+ * Whether to show the duration of the video. Applies only to the VOD streams.
10
+ * @beta
11
+ */
12
+ duration?: boolean;
13
+ };
14
+ /**
15
+ * `PLUGIN` that adds a seek time indicator when the mouse pointer is over the seek bar.
16
+ * @beta
17
+ * @remarks
18
+ * Configuration options - {@link SeekTimeSettings}
19
+ */
7
20
  export declare class SeekTime extends UICorePlugin {
8
21
  get name(): string;
9
22
  get supportedVersion(): {
@@ -12,18 +25,14 @@ export declare class SeekTime extends UICorePlugin {
12
25
  private static readonly template;
13
26
  get attributes(): {
14
27
  class: string;
15
- 'data-seek-time': string;
16
28
  };
17
29
  private get isLiveStreamWithDvr();
18
- private get durationShown();
30
+ private get showDuration();
19
31
  private hoveringOverSeekBar;
20
32
  private hoverPosition;
21
33
  private displayedDuration;
22
34
  private displayedSeekTime;
23
35
  private duration;
24
- private rendered;
25
- private $durationEl;
26
- private $seekTimeEl;
27
36
  /**
28
37
  * @internal
29
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SeekTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/seek-time/SeekTime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,YAAY,EAAmB,MAAM,cAAc,CAAA;AAM9E,OAAO,0CAA0C,CAAA;AAMjD;;;GAGG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,IAAa,UAAU;;;MAKtB;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,aAAa,CAAI;IAEzB,OAAO,CAAC,iBAAiB,CAAsB;IAE/C,OAAO,CAAC,iBAAiB,CAAsB;IAE/C,OAAO,CAAC,QAAQ,CAAI;IAGpB,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,WAAW,CAA2B;IAE9C,OAAO,CAAC,WAAW,CAA2B;IAE9C;;OAEG;IACM,UAAU;IAInB,OAAO,CAAC,WAAW;IAoCnB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,MAAM;IAgDd,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAcf,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"SeekTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/seek-time/SeekTime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,YAAY,EAAmB,MAAM,cAAc,CAAA;AAO9E,OAAO,0CAA0C,CAAA;AAEjD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAMD;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,IAAa,UAAU;;MAItB;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED,OAAO,KAAK,YAAY,GAKvB;IAED,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,aAAa,CAAI;IAEzB,OAAO,CAAC,iBAAiB,CAAsB;IAE/C,OAAO,CAAC,iBAAiB,CAAsB;IAE/C,OAAO,CAAC,QAAQ,CAAI;IAEpB;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,MAAM;IA6Cd,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAQf,OAAO,CAAC,KAAK;CAGd"}
@@ -2,14 +2,17 @@
2
2
  // Use of this source code is governed by a BSD-style
3
3
  // license that can be found at https://github.com/clappr/clappr-plugins/blob/master/LICENSE
4
4
  import { Events, Playback, UICorePlugin, Utils, template } from '@clappr/core';
5
+ import assert from 'assert';
5
6
  import { CLAPPR_VERSION } from '../../build.js';
6
7
  import seekTimeHTML from '../../../assets/seek-time/seek-time.html';
7
8
  import '../../../assets/seek-time/seek-time.scss';
8
- import assert from 'assert';
9
9
  const { formatTime } = Utils;
10
+ // const T = 'plugins.seek_time'
10
11
  /**
11
- * `PLUGIN` that adds a seek time indicator to the media control UI.
12
+ * `PLUGIN` that adds a seek time indicator when the mouse pointer is over the seek bar.
12
13
  * @beta
14
+ * @remarks
15
+ * Configuration options - {@link SeekTimeSettings}
13
16
  */
14
17
  export class SeekTime extends UICorePlugin {
15
18
  get name() {
@@ -22,7 +25,6 @@ export class SeekTime extends UICorePlugin {
22
25
  get attributes() {
23
26
  return {
24
27
  class: 'seek-time',
25
- 'data-seek-time': '',
26
28
  };
27
29
  }
28
30
  get isLiveStreamWithDvr() {
@@ -30,23 +32,21 @@ export class SeekTime extends UICorePlugin {
30
32
  this.core.activeContainer.getPlaybackType() === Playback.LIVE &&
31
33
  this.core.activeContainer.isDvrEnabled());
32
34
  }
33
- get durationShown() {
34
- return !this.isLiveStreamWithDvr;
35
+ get showDuration() {
36
+ return (this.core.options.seekTime?.duration === true &&
37
+ this.core.activeContainer?.getPlaybackType() !== Playback.LIVE);
35
38
  }
36
39
  hoveringOverSeekBar = false;
37
40
  hoverPosition = 0;
38
41
  displayedDuration = null;
39
42
  displayedSeekTime = null;
40
43
  duration = 0;
41
- // private firstFragDateTime = 0;
42
- rendered = false;
43
- $durationEl = null;
44
- $seekTimeEl = null;
45
44
  /**
46
45
  * @internal
47
46
  */
48
47
  bindEvents() {
49
48
  this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
49
+ this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged);
50
50
  }
51
51
  onCoreReady() {
52
52
  const mediaControl = this.core.getPlugin('media_control');
@@ -54,11 +54,6 @@ export class SeekTime extends UICorePlugin {
54
54
  this.listenTo(mediaControl, Events.MEDIACONTROL_RENDERED, this.mount);
55
55
  this.listenTo(mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime);
56
56
  this.listenTo(mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime);
57
- this.listenTo(mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged);
58
- if (this.core.activeContainer) {
59
- this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update);
60
- this.listenTo(this.core.activeContainer, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
61
- }
62
57
  }
63
58
  onContainerChanged() {
64
59
  this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update);
@@ -84,41 +79,37 @@ export class SeekTime extends UICorePlugin {
84
79
  this.hoverPosition = Math.min(1, Math.max(offset / mediaControl.$seekBarContainer.width(), 0));
85
80
  }
86
81
  getSeekTime() {
87
- const seekTime = this.isLiveStreamWithDvr
82
+ return this.isLiveStreamWithDvr
88
83
  ? this.duration - this.hoverPosition * this.duration
89
84
  : this.hoverPosition * this.duration;
90
- return { seekTime };
91
85
  }
92
86
  update() {
93
- if (!this.rendered) {
94
- // update() is always called after a render
95
- return;
96
- }
97
87
  if (!this.shouldBeVisible()) {
98
88
  this.$el.hide();
99
89
  this.$el.css('left', '-100%');
100
90
  return;
101
91
  }
102
92
  const seekTime = this.getSeekTime();
103
- let currentSeekTime = formatTime(seekTime.seekTime, false);
93
+ let currentSeekTime = formatTime(seekTime, false);
104
94
  if (this.isLiveStreamWithDvr) {
105
95
  currentSeekTime = `-${currentSeekTime}`;
106
96
  }
107
97
  // only update dom if necessary, ie time actually changed
108
98
  if (currentSeekTime !== this.displayedSeekTime) {
109
- this.$seekTimeEl.text(currentSeekTime);
99
+ this.$el.find('#mc-seek-time').text(currentSeekTime);
110
100
  this.displayedSeekTime = currentSeekTime;
111
101
  }
112
- if (this.durationShown) {
113
- this.$durationEl.show();
102
+ const $durationEl = this.$el.find('#mc-duration');
103
+ if (this.showDuration) {
104
+ $durationEl.show();
114
105
  const currentDuration = formatTime(this.duration, false);
115
106
  if (currentDuration !== this.displayedDuration) {
116
- this.$durationEl.text(currentDuration);
107
+ $durationEl.text(currentDuration);
117
108
  this.displayedDuration = currentDuration;
118
109
  }
119
110
  }
120
111
  else {
121
- this.$durationEl.hide();
112
+ $durationEl.hide();
122
113
  }
123
114
  // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0
124
115
  this.$el.show();
@@ -141,16 +132,10 @@ export class SeekTime extends UICorePlugin {
141
132
  * @internal
142
133
  */
143
134
  render() {
144
- this.rendered = true;
145
135
  this.displayedDuration = null;
146
136
  this.displayedSeekTime = null;
147
137
  this.$el.html(SeekTime.template());
148
138
  this.$el.hide();
149
- // this.mediaControl.$el.append(this.el);
150
- this.$seekTimeEl = this.$el.find('#mc-seek-time');
151
- this.$durationEl = this.$el.find('#mc-duration');
152
- this.$durationEl.hide();
153
- this.update();
154
139
  return this;
155
140
  }
156
141
  mount() {
@@ -107,6 +107,7 @@ export declare function createMockContainer(options?: Record<string, unknown>, p
107
107
  isPlaying: import("vitest").Mock<(...args: any[]) => any>;
108
108
  play: import("vitest").Mock<(...args: any[]) => any>;
109
109
  seek: import("vitest").Mock<(...args: any[]) => any>;
110
+ seekPercentage: import("vitest").Mock<(...args: any[]) => any>;
110
111
  switchAudioTrack: import("vitest").Mock<(...args: any[]) => any>;
111
112
  trigger: <T extends string | symbol>(event: T, ...args: any[]) => boolean;
112
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,YAAY,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,MAAM,MAAM,eAAe,CAAA;AAElC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IAErC,SAAS,CAAC,OAAO,EAAE,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,GAAG;IAClB,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG;gBAFjB,OAAO,EAAE,GAAG,EACb,IAAI,EAAE,GAAG,EACR,WAAW,CAAC,EAAE,GAAG,YAAA;IAK7B,IAAI,IAAI,WAEP;IAED,OAAO;IAEP,IAAI;IAEJ,KAAK;IAEL,IAAI;IAEJ,OAAO;IAEP,IAAI;IAEJ,cAAc;IAEd,WAAW;IAIX,QAAQ;IAER,OAAO;IAEP,eAAe;IAIf,kBAAkB;IAIlB,cAAc;IAId,qBAAqB;IAIrB,IAAI;IAEJ,MAAM;IAEN,MAAM;IAEN,SAAS;IAET,eAAe;IAIf,WAAW;IAIX,QAAQ;IAIR,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAGtC;AAED,wBAAgB,cAAc,CAC5B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,GAAkC;;;;;;;;;;;;;;;;EAqB9C;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC/C;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,GAAE,GAA0B;;;;;;;;;;;;;;;EAoBrC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,gBAe/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,OAe7C"}
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,YAAY,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,MAAM,MAAM,eAAe,CAAA;AAElC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IAErC,SAAS,CAAC,OAAO,EAAE,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,GAAG;IAClB,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG;gBAFjB,OAAO,EAAE,GAAG,EACb,IAAI,EAAE,GAAG,EACR,WAAW,CAAC,EAAE,GAAG,YAAA;IAK7B,IAAI,IAAI,WAEP;IAED,OAAO;IAEP,IAAI;IAEJ,KAAK;IAEL,IAAI;IAEJ,OAAO;IAEP,IAAI;IAEJ,cAAc;IAEd,WAAW;IAIX,QAAQ;IAER,OAAO;IAEP,eAAe;IAIf,kBAAkB;IAIlB,cAAc;IAId,qBAAqB;IAIrB,IAAI;IAEJ,MAAM;IAEN,MAAM;IAEN,SAAS;IAET,eAAe;IAIf,WAAW;IAIX,QAAQ;IAIR,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAGtC;AAED,wBAAgB,cAAc,CAC5B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,GAAkC;;;;;;;;;;;;;;;;EAqB9C;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC/C;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,GAAE,GAA0B;;;;;;;;;;;;;;;;EAqBrC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,gBAe/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,OAe7C"}
package/lib/testUtils.js CHANGED
@@ -144,6 +144,7 @@ export function createMockContainer(options = {}, playback = createMockPlayback(
144
144
  isPlaying: vi.fn().mockReturnValue(false),
145
145
  play: vi.fn(),
146
146
  seek: vi.fn(),
147
+ seekPercentage: vi.fn(),
147
148
  switchAudioTrack: vi.fn(),
148
149
  trigger: emitter.emit,
149
150
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.22.27",
3
+ "version": "2.22.29",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -245,10 +245,8 @@ export class NerdStats extends UICorePlugin {
245
245
  this.statsBoxElem.scrollTop(this.statsBoxElem.scrollTop())
246
246
  this.open = true
247
247
 
248
- this.refreshSpeedTest()
249
248
  initSpeedTest(this.speedtestMetrics)
250
249
  .then(() => {
251
- trace(`${T} show initSpeedTest ready`);
252
250
  startSpeedtest()
253
251
  })
254
252
  .catch((e) => {
@@ -282,7 +280,6 @@ export class NerdStats extends UICorePlugin {
282
280
  }
283
281
 
284
282
  private estimateQuality() {
285
- trace(`${T} estimateQuality`)
286
283
  const videoQualityNames = [
287
284
  'SD (480p)',
288
285
  'HD (720p)',
@@ -312,7 +309,6 @@ export class NerdStats extends UICorePlugin {
312
309
  }
313
310
 
314
311
  private updateMetrics(metrics: PerfMetrics) {
315
- trace(`${T} updateMetrics`, { custom: this.speedtestMetrics })
316
312
  Object.assign(this.metrics, metrics)
317
313
  this.metrics.custom = {
318
314
  ...this.speedtestMetrics,
@@ -487,9 +483,9 @@ export class NerdStats extends UICorePlugin {
487
483
  clearSpeedTestResults()
488
484
  drawSpeedTestResults()
489
485
  }, 200)
490
- // setTimeout(() => {
491
- // startSpeedtest()
492
- // }, 800)
486
+ setTimeout(() => {
487
+ startSpeedtest()
488
+ }, 800)
493
489
  }
494
490
 
495
491
  private formatPlaybackName(playbackType: PlaybackType): string {
@@ -1,4 +1,4 @@
1
- import { reportError, trace } from '@gcorevideo/utils'
1
+ import { reportError } from '@gcorevideo/utils'
2
2
 
3
3
  import SpeedtestWorkerModule from '../../../../assets/clappr-nerd-stats/speedtest/speedtest.worker.js'
4
4
 
@@ -38,7 +38,7 @@ type UpdateHandler = (data: TestStatusInfo) => void
38
38
 
39
39
  type SelectCallback = (server: Server | null) => void
40
40
 
41
- const T = 'plugins.clappr_nerd_stats.speedtest.Speedtest';
41
+ // const T = 'plugins.clappr_nerd_stats.speedtest.Speedtest';
42
42
 
43
43
  export class Speedtest {
44
44
  private worker: Worker | null = null
@@ -383,7 +383,6 @@ export class Speedtest {
383
383
  }
384
384
  }
385
385
  this._state = 3
386
- trace(`${T} start`, { state: this._state, server: this._selectedServer, settings: this._settings })
387
386
  // TODO don't run until properly initialized (url_ping, etc)
388
387
  this.worker.postMessage('start ' + JSON.stringify(this._settings))
389
388