@gcorevideo/player 2.20.4 → 2.20.5

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 (64) hide show
  1. package/assets/error-screen/error_screen.ejs +3 -1
  2. package/dist/core.js +407 -205
  3. package/dist/index.css +1238 -1238
  4. package/dist/index.js +542 -383
  5. package/dist/plugins/index.css +993 -993
  6. package/dist/plugins/index.js +113 -159
  7. package/lib/Player.d.ts.map +1 -1
  8. package/lib/Player.js +2 -2
  9. package/lib/playback/BasePlayback.d.ts +11 -0
  10. package/lib/playback/BasePlayback.d.ts.map +1 -0
  11. package/lib/playback/BasePlayback.js +33 -0
  12. package/lib/playback/dash-playback/DashPlayback.d.ts +3 -2
  13. package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
  14. package/lib/playback/dash-playback/DashPlayback.js +7 -7
  15. package/lib/playback/hls-playback/HlsPlayback.d.ts +2 -2
  16. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  17. package/lib/playback/hls-playback/HlsPlayback.js +8 -5
  18. package/lib/playback/utils.d.ts +2 -0
  19. package/lib/playback/utils.d.ts.map +1 -0
  20. package/lib/playback/utils.js +1 -0
  21. package/lib/playback.types.d.ts +10 -3
  22. package/lib/playback.types.d.ts.map +1 -1
  23. package/lib/playback.types.js +3 -3
  24. package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
  25. package/lib/plugins/context-menu/ContextMenu.js +1 -2
  26. package/lib/plugins/error-screen/ErrorScreen.d.ts +39 -24
  27. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  28. package/lib/plugins/error-screen/ErrorScreen.js +70 -136
  29. package/lib/plugins/media-control/MediaControl.d.ts +1 -1
  30. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  31. package/lib/plugins/media-control/MediaControl.js +7 -5
  32. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  33. package/lib/plugins/multi-camera/MultiCamera.js +2 -3
  34. package/lib/plugins/poster/Poster.js +1 -1
  35. package/lib/plugins/source-controller/SourceController.d.ts +2 -1
  36. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  37. package/lib/plugins/source-controller/SourceController.js +12 -6
  38. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +2 -1
  39. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
  40. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +19 -3
  41. package/lib/testUtils.d.ts +66 -2
  42. package/lib/testUtils.d.ts.map +1 -1
  43. package/lib/testUtils.js +95 -2
  44. package/package.json +2 -2
  45. package/src/Player.ts +2 -2
  46. package/src/__tests__/Player.test.ts +2 -3
  47. package/src/playback/BasePlayback.ts +41 -0
  48. package/src/playback/dash-playback/DashPlayback.ts +11 -15
  49. package/src/playback/hls-playback/HlsPlayback.ts +7 -5
  50. package/src/playback/utils.ts +2 -0
  51. package/src/playback.types.ts +11 -3
  52. package/src/plugins/context-menu/ContextMenu.ts +1 -2
  53. package/src/plugins/error-screen/ErrorScreen.ts +121 -195
  54. package/src/plugins/error-screen/__tests__/ErrorScreen.test.ts +113 -0
  55. package/src/plugins/error-screen/__tests__/__snapshots__/ErrorScreen.test.ts.snap +20 -0
  56. package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +32 -57
  57. package/src/plugins/media-control/MediaControl.ts +8 -5
  58. package/src/plugins/multi-camera/MultiCamera.ts +2 -3
  59. package/src/plugins/poster/Poster.ts +1 -1
  60. package/src/plugins/source-controller/SourceController.ts +20 -14
  61. package/src/plugins/source-controller/__tests__/SourceController.test.ts +29 -46
  62. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +20 -3
  63. package/src/testUtils.ts +100 -3
  64. package/tsconfig.tsbuildinfo +1 -1
package/dist/core.js CHANGED
@@ -11066,13 +11066,13 @@ var config = {};
11066
11066
 
11067
11067
  function noop$1() {}
11068
11068
 
11069
- var on$1 = noop$1;
11069
+ var on = noop$1;
11070
11070
  var addListener = noop$1;
11071
- var once$1 = noop$1;
11072
- var off$1 = noop$1;
11071
+ var once = noop$1;
11072
+ var off = noop$1;
11073
11073
  var removeListener = noop$1;
11074
11074
  var removeAllListeners = noop$1;
11075
- var emit$1 = noop$1;
11075
+ var emit = noop$1;
11076
11076
 
11077
11077
  function binding(name) {
11078
11078
  throw new Error('process.binding is not supported');
@@ -11125,13 +11125,13 @@ var browser$1 = {
11125
11125
  argv: argv,
11126
11126
  version: version$2,
11127
11127
  versions: versions,
11128
- on: on$1,
11128
+ on: on,
11129
11129
  addListener: addListener,
11130
- once: once$1,
11131
- off: off$1,
11130
+ once: once,
11131
+ off: off,
11132
11132
  removeListener: removeListener,
11133
11133
  removeAllListeners: removeAllListeners,
11134
- emit: emit$1,
11134
+ emit: emit,
11135
11135
  binding: binding,
11136
11136
  cwd: cwd,
11137
11137
  chdir: chdir,
@@ -12028,186 +12028,359 @@ function ifError(err) {
12028
12028
  if (err) throw err;
12029
12029
  }
12030
12030
 
12031
- /**
12032
- * event-lite.js - Light-weight EventEmitter (less than 1KB when gzipped)
12033
- *
12034
- * @copyright Yusuke Kawasaki
12035
- * @license MIT
12036
- * @constructor
12037
- * @see https://github.com/kawanet/event-lite
12038
- * @see http://kawanet.github.io/event-lite/EventLite.html
12039
- * @example
12040
- * var EventLite = require("event-lite");
12041
- *
12042
- * function MyClass() {...} // your class
12043
- *
12044
- * EventLite.mixin(MyClass.prototype); // import event methods
12045
- *
12046
- * var obj = new MyClass();
12047
- * obj.on("foo", function() {...}); // add event listener
12048
- * obj.once("bar", function() {...}); // add one-time event listener
12049
- * obj.emit("foo"); // dispatch event
12050
- * obj.emit("bar"); // dispatch another event
12051
- * obj.off("foo"); // remove event listener
12052
- */
12053
-
12054
- function EventLite() {
12055
- if (!(this instanceof EventLite)) return new EventLite();
12031
+ function getDefaultExportFromCjs$1 (x) {
12032
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
12056
12033
  }
12057
12034
 
12058
- // (function(EventLite) {
12059
- // export the class for node.js
12060
- // if ("undefined" !== typeof module) module.exports = EventLite;
12061
-
12062
- // property name to hold listeners
12063
- var LISTENERS = "listeners";
12064
-
12065
- // methods to export
12066
- var methods = {
12067
- on: on,
12068
- once: once,
12069
- off: off,
12070
- emit: emit
12071
- };
12072
-
12073
- // mixin to self
12074
- mixin(EventLite.prototype);
12075
-
12076
- // export mixin function
12077
- EventLite.mixin = mixin;
12078
-
12079
- /**
12080
- * Import on(), once(), off() and emit() methods into target object.
12081
- *
12082
- * @function EventLite.mixin
12083
- * @param target {Prototype}
12084
- */
12085
-
12086
- function mixin(target) {
12087
- for (var key in methods) {
12088
- target[key] = methods[key];
12089
- }
12090
- return target;
12091
- }
12092
-
12093
- /**
12094
- * Add an event listener.
12095
- *
12096
- * @function EventLite.prototype.on
12097
- * @param type {string}
12098
- * @param func {Function}
12099
- * @returns {EventLite} Self for method chaining
12100
- */
12101
-
12102
- function on(type, func) {
12103
- getListeners(this, type).push(func);
12104
- return this;
12105
- }
12106
-
12107
- /**
12108
- * Add one-time event listener.
12109
- *
12110
- * @function EventLite.prototype.once
12111
- * @param type {string}
12112
- * @param func {Function}
12113
- * @returns {EventLite} Self for method chaining
12114
- */
12115
-
12116
- function once(type, func) {
12117
- var that = this;
12118
- wrap.originalListener = func;
12119
- getListeners(that, type).push(wrap);
12120
- return that;
12121
-
12122
- function wrap() {
12123
- off.call(that, type, wrap);
12124
- func.apply(this, arguments);
12125
- }
12126
- }
12127
-
12128
- /**
12129
- * Remove an event listener.
12130
- *
12131
- * @function EventLite.prototype.off
12132
- * @param [type] {string}
12133
- * @param [func] {Function}
12134
- * @returns {EventLite} Self for method chaining
12135
- */
12136
-
12137
- function off(type, func) {
12138
- var that = this;
12139
- var listners;
12140
- if (!arguments.length) {
12141
- delete that[LISTENERS];
12142
- } else if (!func) {
12143
- listners = that[LISTENERS];
12144
- if (listners) {
12145
- delete listners[type];
12146
- if (!Object.keys(listners).length) return off.call(that);
12147
- }
12148
- } else {
12149
- listners = getListeners(that, type, true);
12150
- if (listners) {
12151
- listners = listners.filter(ne);
12152
- if (!listners.length) return off.call(that, type);
12153
- that[LISTENERS][type] = listners;
12154
- }
12155
- }
12156
- return that;
12157
-
12158
- function ne(test) {
12159
- return test !== func && test.originalListener !== func;
12160
- }
12161
- }
12162
-
12163
- /**
12164
- * Dispatch (trigger) an event.
12165
- *
12166
- * @function EventLite.prototype.emit
12167
- * @param type {string}
12168
- * @param [value] {*}
12169
- * @returns {boolean} True when a listener received the event
12170
- */
12171
-
12172
- function emit(type, value) {
12173
- var that = this;
12174
- var listeners = getListeners(that, type, true);
12175
- if (!listeners) return false;
12176
- var arglen = arguments.length;
12177
- if (arglen === 1) {
12178
- listeners.forEach(zeroarg);
12179
- } else if (arglen === 2) {
12180
- listeners.forEach(onearg);
12181
- } else {
12182
- var args = Array.prototype.slice.call(arguments, 1);
12183
- listeners.forEach(moreargs);
12184
- }
12185
- return !!listeners.length;
12186
-
12187
- function zeroarg(func) {
12188
- func.call(that);
12189
- }
12190
-
12191
- function onearg(func) {
12192
- func.call(that, value);
12193
- }
12194
-
12195
- function moreargs(func) {
12196
- func.apply(that, args);
12197
- }
12198
- }
12199
-
12200
- /**
12201
- * @ignore
12202
- */
12203
-
12204
- function getListeners(that, type, readonly) {
12205
- if (readonly && !that[LISTENERS]) return;
12206
- var listeners = that[LISTENERS] || (that[LISTENERS] = {});
12207
- return listeners[type] || (listeners[type] = []);
12208
- }
12209
-
12210
- // })(EventLite);
12035
+ var eventemitter3$1 = {exports: {}};
12036
+
12037
+ var hasRequiredEventemitter3;
12038
+
12039
+ function requireEventemitter3 () {
12040
+ if (hasRequiredEventemitter3) return eventemitter3$1.exports;
12041
+ hasRequiredEventemitter3 = 1;
12042
+ (function (module) {
12043
+
12044
+ var has = Object.prototype.hasOwnProperty
12045
+ , prefix = '~';
12046
+
12047
+ /**
12048
+ * Constructor to create a storage for our `EE` objects.
12049
+ * An `Events` instance is a plain object whose properties are event names.
12050
+ *
12051
+ * @constructor
12052
+ * @private
12053
+ */
12054
+ function Events() {}
12055
+
12056
+ //
12057
+ // We try to not inherit from `Object.prototype`. In some engines creating an
12058
+ // instance in this way is faster than calling `Object.create(null)` directly.
12059
+ // If `Object.create(null)` is not supported we prefix the event names with a
12060
+ // character to make sure that the built-in object properties are not
12061
+ // overridden or used as an attack vector.
12062
+ //
12063
+ if (Object.create) {
12064
+ Events.prototype = Object.create(null);
12065
+
12066
+ //
12067
+ // This hack is needed because the `__proto__` property is still inherited in
12068
+ // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
12069
+ //
12070
+ if (!new Events().__proto__) prefix = false;
12071
+ }
12072
+
12073
+ /**
12074
+ * Representation of a single event listener.
12075
+ *
12076
+ * @param {Function} fn The listener function.
12077
+ * @param {*} context The context to invoke the listener with.
12078
+ * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
12079
+ * @constructor
12080
+ * @private
12081
+ */
12082
+ function EE(fn, context, once) {
12083
+ this.fn = fn;
12084
+ this.context = context;
12085
+ this.once = once || false;
12086
+ }
12087
+
12088
+ /**
12089
+ * Add a listener for a given event.
12090
+ *
12091
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
12092
+ * @param {(String|Symbol)} event The event name.
12093
+ * @param {Function} fn The listener function.
12094
+ * @param {*} context The context to invoke the listener with.
12095
+ * @param {Boolean} once Specify if the listener is a one-time listener.
12096
+ * @returns {EventEmitter}
12097
+ * @private
12098
+ */
12099
+ function addListener(emitter, event, fn, context, once) {
12100
+ if (typeof fn !== 'function') {
12101
+ throw new TypeError('The listener must be a function');
12102
+ }
12103
+
12104
+ var listener = new EE(fn, context || emitter, once)
12105
+ , evt = prefix ? prefix + event : event;
12106
+
12107
+ if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
12108
+ else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
12109
+ else emitter._events[evt] = [emitter._events[evt], listener];
12110
+
12111
+ return emitter;
12112
+ }
12113
+
12114
+ /**
12115
+ * Clear event by name.
12116
+ *
12117
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
12118
+ * @param {(String|Symbol)} evt The Event name.
12119
+ * @private
12120
+ */
12121
+ function clearEvent(emitter, evt) {
12122
+ if (--emitter._eventsCount === 0) emitter._events = new Events();
12123
+ else delete emitter._events[evt];
12124
+ }
12125
+
12126
+ /**
12127
+ * Minimal `EventEmitter` interface that is molded against the Node.js
12128
+ * `EventEmitter` interface.
12129
+ *
12130
+ * @constructor
12131
+ * @public
12132
+ */
12133
+ function EventEmitter() {
12134
+ this._events = new Events();
12135
+ this._eventsCount = 0;
12136
+ }
12137
+
12138
+ /**
12139
+ * Return an array listing the events for which the emitter has registered
12140
+ * listeners.
12141
+ *
12142
+ * @returns {Array}
12143
+ * @public
12144
+ */
12145
+ EventEmitter.prototype.eventNames = function eventNames() {
12146
+ var names = []
12147
+ , events
12148
+ , name;
12149
+
12150
+ if (this._eventsCount === 0) return names;
12151
+
12152
+ for (name in (events = this._events)) {
12153
+ if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
12154
+ }
12155
+
12156
+ if (Object.getOwnPropertySymbols) {
12157
+ return names.concat(Object.getOwnPropertySymbols(events));
12158
+ }
12159
+
12160
+ return names;
12161
+ };
12162
+
12163
+ /**
12164
+ * Return the listeners registered for a given event.
12165
+ *
12166
+ * @param {(String|Symbol)} event The event name.
12167
+ * @returns {Array} The registered listeners.
12168
+ * @public
12169
+ */
12170
+ EventEmitter.prototype.listeners = function listeners(event) {
12171
+ var evt = prefix ? prefix + event : event
12172
+ , handlers = this._events[evt];
12173
+
12174
+ if (!handlers) return [];
12175
+ if (handlers.fn) return [handlers.fn];
12176
+
12177
+ for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
12178
+ ee[i] = handlers[i].fn;
12179
+ }
12180
+
12181
+ return ee;
12182
+ };
12183
+
12184
+ /**
12185
+ * Return the number of listeners listening to a given event.
12186
+ *
12187
+ * @param {(String|Symbol)} event The event name.
12188
+ * @returns {Number} The number of listeners.
12189
+ * @public
12190
+ */
12191
+ EventEmitter.prototype.listenerCount = function listenerCount(event) {
12192
+ var evt = prefix ? prefix + event : event
12193
+ , listeners = this._events[evt];
12194
+
12195
+ if (!listeners) return 0;
12196
+ if (listeners.fn) return 1;
12197
+ return listeners.length;
12198
+ };
12199
+
12200
+ /**
12201
+ * Calls each of the listeners registered for a given event.
12202
+ *
12203
+ * @param {(String|Symbol)} event The event name.
12204
+ * @returns {Boolean} `true` if the event had listeners, else `false`.
12205
+ * @public
12206
+ */
12207
+ EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
12208
+ var evt = prefix ? prefix + event : event;
12209
+
12210
+ if (!this._events[evt]) return false;
12211
+
12212
+ var listeners = this._events[evt]
12213
+ , len = arguments.length
12214
+ , args
12215
+ , i;
12216
+
12217
+ if (listeners.fn) {
12218
+ if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
12219
+
12220
+ switch (len) {
12221
+ case 1: return listeners.fn.call(listeners.context), true;
12222
+ case 2: return listeners.fn.call(listeners.context, a1), true;
12223
+ case 3: return listeners.fn.call(listeners.context, a1, a2), true;
12224
+ case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
12225
+ case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
12226
+ case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
12227
+ }
12228
+
12229
+ for (i = 1, args = new Array(len -1); i < len; i++) {
12230
+ args[i - 1] = arguments[i];
12231
+ }
12232
+
12233
+ listeners.fn.apply(listeners.context, args);
12234
+ } else {
12235
+ var length = listeners.length
12236
+ , j;
12237
+
12238
+ for (i = 0; i < length; i++) {
12239
+ if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
12240
+
12241
+ switch (len) {
12242
+ case 1: listeners[i].fn.call(listeners[i].context); break;
12243
+ case 2: listeners[i].fn.call(listeners[i].context, a1); break;
12244
+ case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
12245
+ case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
12246
+ default:
12247
+ if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
12248
+ args[j - 1] = arguments[j];
12249
+ }
12250
+
12251
+ listeners[i].fn.apply(listeners[i].context, args);
12252
+ }
12253
+ }
12254
+ }
12255
+
12256
+ return true;
12257
+ };
12258
+
12259
+ /**
12260
+ * Add a listener for a given event.
12261
+ *
12262
+ * @param {(String|Symbol)} event The event name.
12263
+ * @param {Function} fn The listener function.
12264
+ * @param {*} [context=this] The context to invoke the listener with.
12265
+ * @returns {EventEmitter} `this`.
12266
+ * @public
12267
+ */
12268
+ EventEmitter.prototype.on = function on(event, fn, context) {
12269
+ return addListener(this, event, fn, context, false);
12270
+ };
12271
+
12272
+ /**
12273
+ * Add a one-time listener for a given event.
12274
+ *
12275
+ * @param {(String|Symbol)} event The event name.
12276
+ * @param {Function} fn The listener function.
12277
+ * @param {*} [context=this] The context to invoke the listener with.
12278
+ * @returns {EventEmitter} `this`.
12279
+ * @public
12280
+ */
12281
+ EventEmitter.prototype.once = function once(event, fn, context) {
12282
+ return addListener(this, event, fn, context, true);
12283
+ };
12284
+
12285
+ /**
12286
+ * Remove the listeners of a given event.
12287
+ *
12288
+ * @param {(String|Symbol)} event The event name.
12289
+ * @param {Function} fn Only remove the listeners that match this function.
12290
+ * @param {*} context Only remove the listeners that have this context.
12291
+ * @param {Boolean} once Only remove one-time listeners.
12292
+ * @returns {EventEmitter} `this`.
12293
+ * @public
12294
+ */
12295
+ EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
12296
+ var evt = prefix ? prefix + event : event;
12297
+
12298
+ if (!this._events[evt]) return this;
12299
+ if (!fn) {
12300
+ clearEvent(this, evt);
12301
+ return this;
12302
+ }
12303
+
12304
+ var listeners = this._events[evt];
12305
+
12306
+ if (listeners.fn) {
12307
+ if (
12308
+ listeners.fn === fn &&
12309
+ (!once || listeners.once) &&
12310
+ (!context || listeners.context === context)
12311
+ ) {
12312
+ clearEvent(this, evt);
12313
+ }
12314
+ } else {
12315
+ for (var i = 0, events = [], length = listeners.length; i < length; i++) {
12316
+ if (
12317
+ listeners[i].fn !== fn ||
12318
+ (once && !listeners[i].once) ||
12319
+ (context && listeners[i].context !== context)
12320
+ ) {
12321
+ events.push(listeners[i]);
12322
+ }
12323
+ }
12324
+
12325
+ //
12326
+ // Reset the array, or remove it completely if we have no more listeners.
12327
+ //
12328
+ if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
12329
+ else clearEvent(this, evt);
12330
+ }
12331
+
12332
+ return this;
12333
+ };
12334
+
12335
+ /**
12336
+ * Remove all listeners, or those of the specified event.
12337
+ *
12338
+ * @param {(String|Symbol)} [event] The event name.
12339
+ * @returns {EventEmitter} `this`.
12340
+ * @public
12341
+ */
12342
+ EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
12343
+ var evt;
12344
+
12345
+ if (event) {
12346
+ evt = prefix ? prefix + event : event;
12347
+ if (this._events[evt]) clearEvent(this, evt);
12348
+ } else {
12349
+ this._events = new Events();
12350
+ this._eventsCount = 0;
12351
+ }
12352
+
12353
+ return this;
12354
+ };
12355
+
12356
+ //
12357
+ // Alias methods names because people roll like that.
12358
+ //
12359
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
12360
+ EventEmitter.prototype.addListener = EventEmitter.prototype.on;
12361
+
12362
+ //
12363
+ // Expose the prefix.
12364
+ //
12365
+ EventEmitter.prefixed = prefix;
12366
+
12367
+ //
12368
+ // Allow `EventEmitter` to be imported as module namespace.
12369
+ //
12370
+ EventEmitter.EventEmitter = EventEmitter;
12371
+
12372
+ //
12373
+ // Expose the module.
12374
+ //
12375
+ {
12376
+ module.exports = EventEmitter;
12377
+ }
12378
+ } (eventemitter3$1));
12379
+ return eventemitter3$1.exports;
12380
+ }
12381
+
12382
+ var eventemitter3Exports$1 = requireEventemitter3();
12383
+ const EventEmitter$1 = /*@__PURE__*/getDefaultExportFromCjs$1(eventemitter3Exports$1);
12211
12384
 
12212
12385
  /**
12213
12386
  * A top-level event on the player object
@@ -12327,10 +12500,6 @@ function isHlsSource(source, mimeType) {
12327
12500
  return source.endsWith('.m3u8');
12328
12501
  }
12329
12502
 
12330
- function getDefaultExportFromCjs$1 (x) {
12331
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
12332
- }
12333
-
12334
12503
  var dash_all_min = {exports: {}};
12335
12504
 
12336
12505
  var hasRequiredDash_all_min;
@@ -12357,17 +12526,49 @@ var PlaybackErrorCode;
12357
12526
  /**
12358
12527
  * An unknown or uncategorised error.
12359
12528
  */
12360
- PlaybackErrorCode[PlaybackErrorCode["Generic"] = 0] = "Generic";
12529
+ PlaybackErrorCode["Generic"] = "GENERIC_ERROR";
12361
12530
  /**
12362
12531
  * The media source is not available. Typically a network error.
12363
12532
  */
12364
- PlaybackErrorCode[PlaybackErrorCode["MediaSourceUnavailable"] = 1] = "MediaSourceUnavailable";
12533
+ PlaybackErrorCode["MediaSourceUnavailable"] = "MEDIA_SOURCE_UNAVAILABLE";
12365
12534
  /**
12366
12535
  * The media source is not accessible due to some protection policy.
12367
12536
  */
12368
- PlaybackErrorCode[PlaybackErrorCode["MediaSourceAccessDenied"] = 3] = "MediaSourceAccessDenied";
12537
+ PlaybackErrorCode["MediaSourceAccessDenied"] = "MEDIA_SOURCE_ACCESS_DENIED";
12369
12538
  })(PlaybackErrorCode || (PlaybackErrorCode = {}));
12370
12539
 
12540
+ /**
12541
+ * This class adds common behaviors to all playback modules.
12542
+ * @internal
12543
+ * TODO use custom HTML5Video playback with this layer applied
12544
+ */
12545
+ class BasePlayback extends HTML5Video {
12546
+ createError(errorData, options) {
12547
+ const i18n = this.i18n ||
12548
+ // @ts-ignore
12549
+ (this.core && this.core.i18n) ||
12550
+ // @ts-ignore
12551
+ (this.container && this.container.i18n);
12552
+ if (i18n &&
12553
+ !errorData.UI &&
12554
+ errorData.code === PlaybackErrorCode.MediaSourceUnavailable) {
12555
+ const defaultUI = {
12556
+ title: i18n.t('no_broadcast'),
12557
+ message: '',
12558
+ };
12559
+ errorData.UI = defaultUI;
12560
+ }
12561
+ if (errorData.level === PlayerError.Levels.FATAL) {
12562
+ this.trigger(Events$1.PLAYBACK_MEDIACONTROL_DISABLE);
12563
+ }
12564
+ return super.createError(errorData, options);
12565
+ }
12566
+ _onProgress() {
12567
+ super._onProgress();
12568
+ this.trigger(Events$1.PLAYBACK_MEDIACONTROL_ENABLE);
12569
+ }
12570
+ }
12571
+
12371
12572
  // Copyright 2014 Globo.com Player authors. All rights reserved.
12372
12573
  // Use of this source code is governed by a BSD-style
12373
12574
  // license that can be found in the LICENSE file.
@@ -12375,7 +12576,7 @@ const AUTO$1 = -1;
12375
12576
  const { now: now$2 } = Utils;
12376
12577
  const T$2 = 'playback.dash';
12377
12578
  // @ts-expect-error
12378
- class DashPlayback extends HTML5Video {
12579
+ class DashPlayback extends BasePlayback {
12379
12580
  _levels = null;
12380
12581
  _currentLevel = null;
12381
12582
  // true when the actual duration is longer than hlsjs's live sync point
@@ -12682,11 +12883,10 @@ class DashPlayback extends HTML5Video {
12682
12883
  };
12683
12884
  triggerError(error) {
12684
12885
  trace(`${T$2} triggerError`, { error });
12685
- this.trigger(Events$1.PLAYBACK_ERROR, {
12686
- ...error,
12687
- origin: this.name,
12688
- scope: DashPlayback.type,
12689
- });
12886
+ // this triggers Events.ERROR to be handled by the UI
12887
+ this.trigger(Events$1.PLAYBACK_ERROR, this.createError(error, {
12888
+ useCodePrefix: false,
12889
+ }));
12690
12890
  // only reset the dash player in 10ms async, so that the rest of the
12691
12891
  // calling function finishes
12692
12892
  setTimeout(() => {
@@ -41484,15 +41684,15 @@ const CLAPPR_VERSION = '0.11.3';
41484
41684
 
41485
41685
  // Copyright 2014 Globo.com Player authors. All rights reserved.
41486
41686
  // Use of this source code is governed by a BSD-style
41487
- // license that can be found in the LICENSE file.
41488
- const { now} = Utils;
41687
+ // license that can be found on https://github.com/clappr/hlsjs-playback/blob/main/LICENSE
41688
+ const { now } = Utils;
41489
41689
  const AUTO = -1;
41490
41690
  const DEFAULT_RECOVER_ATTEMPTS = 16;
41491
41691
  Events$1.register('PLAYBACK_FRAGMENT_CHANGED');
41492
41692
  Events$1.register('PLAYBACK_FRAGMENT_PARSING_METADATA');
41493
41693
  const T$1 = 'playback.hls';
41494
41694
  // @ts-expect-error
41495
- class HlsPlayback extends HTML5Video {
41695
+ class HlsPlayback extends BasePlayback {
41496
41696
  _ccIsSetup = false;
41497
41697
  _ccTracksUpdated = false;
41498
41698
  _currentFragment = null;
@@ -42297,7 +42497,9 @@ class HlsPlayback extends HTML5Video {
42297
42497
  return this._playbackType === Playback.VOD || this.dvrEnabled;
42298
42498
  }
42299
42499
  triggerError(error) {
42300
- this.trigger(Events$1.PLAYBACK_ERROR, error);
42500
+ this.trigger(Events$1.PLAYBACK_ERROR, this.createError(error, {
42501
+ useCodePrefix: false,
42502
+ }));
42301
42503
  this.stop();
42302
42504
  }
42303
42505
  }
@@ -42335,7 +42537,7 @@ const DEFAULT_OPTIONS = {
42335
42537
  */
42336
42538
  class Player {
42337
42539
  config = DEFAULT_OPTIONS;
42338
- emitter = new EventLite();
42540
+ emitter = new EventEmitter$1();
42339
42541
  player = null;
42340
42542
  ready = false;
42341
42543
  rootNode = null;
@@ -42773,7 +42975,7 @@ class Player {
42773
42975
  }
42774
42976
  }
42775
42977
 
42776
- var version$1 = "2.20.4";
42978
+ var version$1 = "2.20.5";
42777
42979
 
42778
42980
  var packages = {
42779
42981
  "node_modules/@clappr/core": {