twitch-player
Version:
A Typescript wrapper for the Twitch embeddable, interactive media player.
527 lines (501 loc) • 27.2 kB
JavaScript
!function(e, t) {
'object' == typeof exports && 'object' == typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define([], t) : 'object' == typeof exports ? exports.Twitch = t() : e.Twitch = t();
}(window, (function() {
return function(e) {
var t = {};
function n(r) {
if (t[r]) return t[r].exports;
var o = t[r] = { i: r, l: !1, exports: {} };
return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;
}
return n.m = e, n.c = t, n.d = function(e, t, r) {
n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: r });
}, n.r = function(e) {
'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }), Object.defineProperty(e, '__esModule', { value: !0 });
}, n.t = function(e, t) {
if (1 & t && (e = n(e)), 8 & t) return e;
if (4 & t && 'object' == typeof e && e && e.__esModule) return e;
var r = Object.create(null);
if (n.r(r), Object.defineProperty(r, 'default', {
enumerable: !0,
value: e
}), 2 & t && 'string' != typeof e) for (var o in e) n.d(r, o, function(t) {
return e[t];
}.bind(null, o));
return r;
}, n.n = function(e) {
var t = e && e.__esModule ? function() {
return e.default;
} : function() {
return e;
};
return n.d(t, 'a', t), t;
}, n.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}, n.p = '', n(n.s = 4);
}([function(e, t, n) {
'use strict';
var r = Object.prototype.hasOwnProperty, o = '~';
function i() {
}
function a(e, t, n) {
this.fn = e, this.context = t, this.once = n || !1;
}
function l(e, t, n, r, i) {
if ('function' != typeof n) throw new TypeError('The listener must be a function');
var l = new a(n, r || e, i), s = o ? o + t : t;
return e._events[s] ? e._events[s].fn ? e._events[s] = [e._events[s], l] : e._events[s].push(l) : (e._events[s] = l, e._eventsCount++), e;
}
function s(e, t) {
0 == --e._eventsCount ? e._events = new i : delete e._events[t];
}
function u() {
this._events = new i, this._eventsCount = 0;
}
Object.create && (i.prototype = Object.create(null), (new i).__proto__ || (o = !1)), u.prototype.eventNames = function() {
var e, t, n = [];
if (0 === this._eventsCount) return n;
for (t in e = this._events) r.call(e, t) && n.push(o ? t.slice(1) : t);
return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(e)) : n;
}, u.prototype.listeners = function(e) {
var t = o ? o + e : e, n = this._events[t];
if (!n) return [];
if (n.fn) return [n.fn];
for (var r = 0, i = n.length, a = new Array(i); r < i; r++) a[r] = n[r].fn;
return a;
}, u.prototype.listenerCount = function(e) {
var t = o ? o + e : e, n = this._events[t];
return n ? n.fn ? 1 : n.length : 0;
}, u.prototype.emit = function(e, t, n, r, i, a) {
var l = o ? o + e : e;
if (!this._events[l]) return !1;
var s, u, c = this._events[l], d = arguments.length;
if (c.fn) {
switch (c.once && this.removeListener(e, c.fn, void 0, !0), d) {
case 1:
return c.fn.call(c.context), !0;
case 2:
return c.fn.call(c.context, t), !0;
case 3:
return c.fn.call(c.context, t, n), !0;
case 4:
return c.fn.call(c.context, t, n, r), !0;
case 5:
return c.fn.call(c.context, t, n, r, i), !0;
case 6:
return c.fn.call(c.context, t, n, r, i, a), !0;
}
for (u = 1, s = new Array(d - 1); u < d; u++) s[u - 1] = arguments[u];
c.fn.apply(c.context, s);
} else {
var p, f = c.length;
for (u = 0; u < f; u++) switch (c[u].once && this.removeListener(e, c[u].fn, void 0, !0), d) {
case 1:
c[u].fn.call(c[u].context);
break;
case 2:
c[u].fn.call(c[u].context, t);
break;
case 3:
c[u].fn.call(c[u].context, t, n);
break;
case 4:
c[u].fn.call(c[u].context, t, n, r);
break;
default:
if (!s) for (p = 1, s = new Array(d - 1); p < d; p++) s[p - 1] = arguments[p];
c[u].fn.apply(c[u].context, s);
}
}
return !0;
}, u.prototype.on = function(e, t, n) {
return l(this, e, t, n, !1);
}, u.prototype.once = function(e, t, n) {
return l(this, e, t, n, !0);
}, u.prototype.removeListener = function(e, t, n, r) {
var i = o ? o + e : e;
if (!this._events[i]) return this;
if (!t) return s(this, i), this;
var a = this._events[i];
if (a.fn) a.fn !== t || r && !a.once || n && a.context !== n || s(this, i); else {
for (var l = 0, u = [], c = a.length; l < c; l++) (a[l].fn !== t || r && !a[l].once || n && a[l].context !== n) && u.push(a[l]);
u.length ? this._events[i] = 1 === u.length ? u[0] : u : s(this, i);
}
return this;
}, u.prototype.removeAllListeners = function(e) {
var t;
return e ? (t = o ? o + e : e, this._events[t] && s(this, t)) : (this._events = new i, this._eventsCount = 0), this;
}, u.prototype.off = u.prototype.removeListener, u.prototype.addListener = u.prototype.on, u.prefixed = o, u.EventEmitter = u, e.exports = u;
}, function(e, t, n) {
'use strict';
var r = n(2), o = n(3);
function i(e, t) {
return t.encode ? t.strict ? r(e) : encodeURIComponent(e) : e;
}
t.extract = function(e) {
return e.split('?')[1] || '';
}, t.parse = function(e, t) {
var n = function(e) {
var t;
switch (e.arrayFormat) {
case'index':
return function(e, n, r) {
t = /\[(\d*)\]$/.exec(e), e = e.replace(/\[\d*\]$/, ''), t ? (void 0 === r[e] && (r[e] = {}), r[e][t[1]] = n) : r[e] = n;
};
case'bracket':
return function(e, n, r) {
t = /(\[\])$/.exec(e), e = e.replace(/\[\]$/, ''), t ? void 0 !== r[e] ? r[e] = [].concat(r[e], n) : r[e] = [n] : r[e] = n;
};
default:
return function(e, t, n) {
void 0 !== n[e] ? n[e] = [].concat(n[e], t) : n[e] = t;
};
}
}(t = o({ arrayFormat: 'none' }, t)), r = Object.create(null);
return 'string' != typeof e ? r : (e = e.trim().replace(/^(\?|#|&)/, '')) ? (e.split('&').forEach((function(e) {
var t = e.replace(/\+/g, ' ').split('='), o = t.shift(), i = t.length > 0 ? t.join('=') : void 0;
i = void 0 === i ? null : decodeURIComponent(i), n(decodeURIComponent(o), i, r);
})), Object.keys(r).sort().reduce((function(e, t) {
var n = r[t];
return Boolean(n) && 'object' == typeof n && !Array.isArray(n) ? e[t] = function e(t) {
return Array.isArray(t) ? t.sort() : 'object' == typeof t ? e(Object.keys(t)).sort((function(e, t) {
return Number(e) - Number(t);
})).map((function(e) {
return t[e];
})) : t;
}(n) : e[t] = n, e;
}), Object.create(null))) : r;
}, t.stringify = function(e, t) {
var n = function(e) {
switch (e.arrayFormat) {
case'index':
return function(t, n, r) {
return null === n ? [i(t, e), '[', r, ']'].join('') : [i(t, e), '[', i(r, e), ']=', i(n, e)].join('');
};
case'bracket':
return function(t, n) {
return null === n ? i(t, e) : [i(t, e), '[]=', i(n, e)].join('');
};
default:
return function(t, n) {
return null === n ? i(t, e) : [i(t, e), '=', i(n, e)].join('');
};
}
}(t = o({ encode: !0, strict: !0, arrayFormat: 'none' }, t));
return e ? Object.keys(e).sort().map((function(r) {
var o = e[r];
if (void 0 === o) return '';
if (null === o) return i(r, t);
if (Array.isArray(o)) {
var a = [];
return o.slice().forEach((function(e) {
void 0 !== e && a.push(n(r, e, a.length));
})), a.join('&');
}
return i(r, t) + '=' + i(o, t);
})).filter((function(e) {
return e.length > 0;
})).join('&') : '';
};
}, function(e, t, n) {
'use strict';
e.exports = function(e) {
return encodeURIComponent(e).replace(/[!'()*]/g, (function(e) {
return '%' + e.charCodeAt(0).toString(16).toUpperCase();
}));
};
}, function(e, t, n) {
'use strict';
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
var r = Object.getOwnPropertySymbols, o = Object.prototype.hasOwnProperty,
i = Object.prototype.propertyIsEnumerable;
function a(e) {
if (null == e) throw new TypeError('Object.assign cannot be called with null or undefined');
return Object(e);
}
e.exports = function() {
try {
if (!Object.assign) return !1;
var e = new String('abc');
if (e[5] = 'de', '5' === Object.getOwnPropertyNames(e)[0]) return !1;
for (var t = {}, n = 0; n < 10; n++) t['_' + String.fromCharCode(n)] = n;
if ('0123456789' !== Object.getOwnPropertyNames(t).map((function(e) {
return t[e];
})).join('')) return !1;
var r = {};
return 'abcdefghijklmnopqrst'.split('').forEach((function(e) {
r[e] = e;
})), 'abcdefghijklmnopqrst' === Object.keys(Object.assign({}, r)).join('');
} catch (e) {
return !1;
}
}() ? Object.assign : function(e, t) {
for (var n, l, s = a(e), u = 1; u < arguments.length; u++) {
for (var c in n = Object(arguments[u])) o.call(n, c) && (s[c] = n[c]);
if (r) {
l = r(n);
for (var d = 0; d < l.length; d++) i.call(n, l[d]) && (s[l[d]] = n[l[d]]);
}
}
return s;
};
}, function(e, t, n) {
'use strict';
n.r(t);
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
var r = function(e, t) {
return (r = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, t) {
e.__proto__ = t;
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
})(e, t);
};
function o(e, t) {
function n() {
this.constructor = e;
}
r(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n);
}
var i = function() {
return (i = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++) for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
return e;
}).apply(this, arguments);
};
var a, l, s, u, c = n(0), d = 'twitch-embed';
!function(e) {
e.UpdateState = 'UPDATE_STATE';
}(a || (a = {})), function(e) {
e.VideoWithChat = 'video-with-chat', e.Video = 'video';
}(l || (l = {})), function(e) {
e.AUTHENTICATE = 'authenticate', e.VIDEO_READY = 'video.ready', e.VIDEO_PLAY = 'video.play', e.VIDEO_PAUSE = 'video.pause', e.CAPTIONS = 'captions', e.ENDED = 'ended', e.ERROR = 'error', e.ONLINE = 'online', e.OFFLINE = 'offline', e.PAUSE = 'pause', e.PLAY = 'play', e.PLAYBACK_BLOCKED = 'playbackBlocked', e.PLAYING = 'playing', e.READY = 'ready';
}(s || (s = {})), function(e) {
e[e.DisableCaptions = 0] = 'DisableCaptions', e[e.EnableCaptions = 1] = 'EnableCaptions', e[e.Pause = 2] = 'Pause', e[e.Play = 3] = 'Play', e[e.Seek = 4] = 'Seek', e[e.SetChannel = 5] = 'SetChannel', e[e.SetChannelID = 6] = 'SetChannelID', e[e.SetCollection = 7] = 'SetCollection', e[e.SetQuality = 8] = 'SetQuality', e[e.SetVideo = 9] = 'SetVideo', e[e.SetMuted = 10] = 'SetMuted', e[e.SetVolume = 11] = 'SetVolume';
}(u || (u = {}));
var p, f, y, E, _, h, m, v, A, P, g, b = function() {
};
!function(e) {
e.UNKNOWN = 'Unspecified', e.FILE = 'File', e.PLAYLIST = 'Playlist', e.SEGMENT = 'Segment', e.SOURCE = 'Source', e.DECODER = 'Decode', e.RENDERER = 'Render', e.MASTER_PLAYLIST = 'MasterPlaylist', e.MEDIA_PLAYLIST = 'MediaPlaylist';
}(p || (p = {})), function(e) {
e.GENERIC = 'Error', e.NOT_SUPPORTED = 'ErrorNotSupported', e.NO_SOURCE = 'ErrorNoSource', e.INVALID_DATA = 'ErrorInvalidData', e.INVALID_STATE = 'ErrorInvalidState', e.INVALID_PARAMETER = 'ErrorInvalidParameter', e.TIMEOUT = 'ErrorTimeout', e.INVALID_OUTPUT = 'ErrorInvalidOutput', e.INTERNAL = 'ErrorInternal', e.NETWORK = 'ErrorNetwork', e.NETWORK_IO = 'ErrorNetworkIO', e.AUTHORIZATION = 'ErrorAuthorization', e.NOT_AVAILABLE = 'ErrorNotAvailable';
}(f || (f = {})), function(e) {
e[e.GEOBLOCKED = 1] = 'GEOBLOCKED', e[e.UNSUPPORTED_DEVICE = 2] = 'UNSUPPORTED_DEVICE', e[e.ANONYMIZER_BLOCKED = 3] = 'ANONYMIZER_BLOCKED', e[e.CELLULAR_NETWORK_PROHIBITED = 4] = 'CELLULAR_NETWORK_PROHIBITED', e[e.UNAUTHORIZATION_ENTITLEMENTS = 5] = 'UNAUTHORIZATION_ENTITLEMENTS', e[e.VOD_RESTRICTED = 6] = 'VOD_RESTRICTED';
}(y || (y = {})), function(e) {
e.ID3 = 'MetaID3', e.CAPTION = 'MetaCaption';
}(E || (E = {})), function(e) {
e.INITIALIZED = 'PlayerInitialized', e.QUALITY_CHANGED = 'PlayerQualityChanged', e.DURATION_CHANGED = 'PlayerDurationChanged', e.VOLUME_CHANGED = 'PlayerVolumeChanged', e.MUTED_CHANGED = 'PlayerMutedChanged', e.PLAYBACK_RATE_CHANGED = 'PlayerPlaybackRateChanged', e.REBUFFERING = 'PlayerRebuffering', e.AUDIO_BLOCKED = 'PlayerAudioBlocked', e.PLAYBACK_BLOCKED = 'PlayerPlaybackBlocked', e.ERROR = 'PlayerError', e.RECOVERABLE_ERROR = 'PlayerRecoverableError', e.ANALYTICS_EVENT = 'PlayerAnalyticsEvent', e.TIME_UPDATE = 'PlayerTimeUpdate', e.BUFFER_UPDATE = 'PlayerBufferUpdate', e.SEEK_COMPLETED = 'PlayerSeekCompleted', e.SESSION_DATA = 'PlayerSessionData', e.WORKER_ERROR = 'PlayerWorkerError', e.METADATA = 'PlayerMetadata', e.TEXT_CUE = 'PlayerTextCue', e.TEXT_METADATA_CUE = 'PlayerTextMetadataCue';
}(_ || (_ = {})), function(e) {
e.PLAYER_LOADED_IN_WORKER = 'player_loaded_in_worker', e.HLS_MASTER_PLAYLIST_REQUEST = 'master_manifest_request', e.HLS_MASTER_PLAYLIST_READY = 'master_manifest_ready', e.HLS_MEDIA_PLAYLIST_REQUEST = 'variant_request', e.HLS_MEDIA_PLAYLIST_READY = 'variant_ready', e.MIN_BUFFER_READY = 'min_buffer_ready', e.VIDEO_ELEMENT_PLAY = 'video_element_play';
}(h || (h = {})), function(e) {
e.AVAILABLE = 'RemotePlayerAvailable', e.UNAVAILABLE = 'RemotePlayerUnavailable', e.SESSION_STARTED = 'RemotePlayerSessionStarted', e.SESSION_ENDED = 'RemotePlayerSessionEnded';
}(m || (m = {})), function(e) {
e.IDLE = 'Idle', e.READY = 'Ready', e.BUFFERING = 'Buffering', e.PLAYING = 'Playing', e.ENDED = 'Ended';
}(v || (v = {})), function(e) {
e.DEBUG = 'debug', e.INFO = 'info', e.WARN = 'warn', e.ERROR = 'error';
}(A || (A = {})), function(e) {
e[e.GeoBlocked = 1] = 'GeoBlocked', e[e.UnsupportedDevice = 2] = 'UnsupportedDevice', e[e.AnonymizerBlocked = 3] = 'AnonymizerBlocked', e[e.CellularNetworkProhibited = 4] = 'CellularNetworkProhibited', e[e.UnauthorizationEntitlements = 5] = 'UnauthorizationEntitlements', e[e.VodRestricted = 6] = 'VodRestricted', e[e.LVSCCUCap = 509] = 'LVSCCUCap', e[e.Aborted = 1e3] = 'Aborted', e[e.Network = 2e3] = 'Network', e[e.CCUCapReached = 2001] = 'CCUCapReached', e[e.Decode = 3e3] = 'Decode', e[e.FormatNotSupported = 4e3] = 'FormatNotSupported', e[e.ContentNotAvailable = 5e3] = 'ContentNotAvailable', e[e.RendererNotAvailable = 6e3] = 'RendererNotAvailable', e[e.SafariUnsupportedDevice = 7004] = 'SafariUnsupportedDevice', e[e.Fatal = 8001] = 'Fatal', e[e.FatalAuth = 8003] = 'FatalAuth', e[e.Offline = 8002] = 'Offline', e[e.WarnAuth = 8004] = 'WarnAuth';
}(P || (P = {})), function(e) {
e.PREMIUM_CONTENT_RESTRICTED = 'PREMIUM_CONTENT', e.VOD_RESTRICTED = 'vod_manifest_restricted';
}(g || (g = {}));
var C = function(e) {
function t(t) {
var n = this.constructor, r = e.call(this, t) || this;
return Object.setPrototypeOf(r, n.prototype), r.name = 'MissingParameterError', r;
}
return o(t, e), t;
}(Error), O = function(e) {
function t(t) {
var n = this.constructor, r = e.call(this, 'Could not find the provided element: ' + t) || this;
return Object.setPrototypeOf(r, n.prototype), r.name = 'MissingElementError', r;
}
return o(t, e), t;
}(Error), S = n(1);
function I(e, t) {
var n = 'https://' + t + '.twitch.tv' + '?' + S.stringify(i(i({}, e), {
migration: !0,
parent: R(e.parent),
referrer: document.location.href
})), r = document.createElement('iframe');
return r.setAttribute('src', n), r.setAttribute('allowfullscreen', ''), r.setAttribute('scrolling', 'no'), r.setAttribute('frameborder', '0'), r.setAttribute('allow', 'autoplay; fullscreen'), r.setAttribute('title', 'Twitch'), e.width && r.setAttribute('width', String(e.width)), e.height && r.setAttribute('height', String(e.height)), r;
}
function R(e) {
var t = document.domain;
if (!e) return [t];
var n = Array.isArray(e) ? e : [e];
return -1 === n.indexOf(t) ? n.concat(t) : n;
}
var T = {
channelName: '',
channelID: '',
collectionID: '',
currentTime: 0,
duration: 0,
muted: !1,
playback: v.IDLE,
quality: '',
qualitiesAvailable: [],
stats: {
videoStats: {
backendVersion: '',
bufferSize: 0,
codecs: '',
displayResolution: '',
fps: 0,
hlsLatencyBroadcaster: 0,
latencyMode: '',
playbackRate: 0,
skippedFrames: 0,
videoResolution: ''
}
},
videoID: '',
volume: 0,
ended: !1
}, D = function(e) {
function t() {
var t = e.call(this) || this;
return t._embedWindow = null, t._playerState = T, window.addEventListener('message', t._handleResponses.bind(t)), t;
}
return o(t, e), t.prototype._setWindowRef = function(e) {
this._embedWindow = e;
}, t.prototype.disableCaptions = function() {
this._sendCommand(u.DisableCaptions, null);
}, t.prototype.enableCaptions = function() {
this._sendCommand(u.EnableCaptions, null);
}, t.prototype.pause = function() {
this._sendCommand(u.Pause, null);
}, t.prototype.play = function() {
this._sendCommand(u.Play, null);
}, t.prototype.seek = function(e) {
this._sendCommand(u.Seek, e);
}, t.prototype.setChannel = function(e) {
this._sendCommand(u.SetChannel, e);
}, t.prototype.setChannelId = function(e) {
this._sendCommand(u.SetChannelID, e);
}, t.prototype.setCollection = function(e, t) {
this._sendCommand(u.SetCollection, [e, t]);
}, t.prototype.setQuality = function(e) {
this._sendCommand(u.SetQuality, e);
}, t.prototype.setVideo = function(e) {
this._sendCommand(u.SetVideo, e);
}, t.prototype.setMuted = function(e) {
var t = 'boolean' != typeof e || e;
this._sendCommand(u.SetMuted, t);
}, t.prototype.setVolume = function(e) {
this._sendCommand(u.SetVolume, e);
}, t.prototype.getMuted = function() {
return this._playerState.muted;
}, t.prototype.getVolume = function() {
return this._playerState.volume;
}, t.prototype.getChannel = function() {
return this._playerState.channelName;
}, t.prototype.getChannelId = function() {
return this._playerState.channelID;
}, t.prototype.getCollection = function() {
return this._playerState.collectionID;
}, t.prototype.getCurrentTime = function() {
return this._playerState.currentTime;
}, t.prototype.getDuration = function() {
return this._playerState.duration;
}, t.prototype.getEnded = function() {
return this._playerState.ended;
}, t.prototype.getPlaybackStats = function() {
return this._playerState.stats.videoStats;
}, t.prototype.getQualities = function() {
return this._playerState.qualitiesAvailable;
}, t.prototype.getQuality = function() {
return this._playerState.quality;
}, t.prototype.getVideo = function() {
return this._playerState.videoID;
}, t.prototype.isPaused = function() {
return this._playerState.playback === v.IDLE;
}, t.prototype.getPlayerState = function() {
return this._playerState;
}, t.prototype._sendCommand = function(e, t) {
if (this._embedWindow) {
var n = { eventName: e, params: t, namespace: 'twitch-embed-player-proxy' };
this._embedWindow.postMessage(n, '*');
} else console.warn('Cannot send player commands before the video player is initialized. Please wait for the VIDEO_READY event before using the player API.');
}, t.prototype._handleResponses = function(e) {
if (this._embedWindow) {
var t = e.data, n = e.source === this._embedWindow, r = 'twitch-embed-player-proxy' === t.namespace,
o = t.eventName === a.UpdateState;
n && r && o && (this._playerState = Object.assign({}, this._playerState, t.params));
}
}, t;
}(b);
n.d(t, 'Embed', (function() {
return N;
})), n.d(t, 'Player', (function() {
return L;
}));
var N = function(e) {
function t(t, n) {
var r = e.call(this) || this;
return r._options = {}, r._target = null, r._player = new D, r._eventEmitter = null, r._iframe = null, r._forwardEmbedEvents = function(e) {
if (r._iframe) {
var t = e.data, n = e.source === r._iframe.contentWindow, o = t.namespace === d;
n && o && r._eventEmitter.emit(t.eventName, t.params);
}
}, r.disableCaptions = r.getPlayer().disableCaptions.bind(r.getPlayer()), r.enableCaptions = r.getPlayer().enableCaptions.bind(r.getPlayer()), r.pause = r.getPlayer().pause.bind(r.getPlayer()), r.play = r.getPlayer().play.bind(r.getPlayer()), r.seek = r.getPlayer().seek.bind(r.getPlayer()), r.setChannel = r.getPlayer().setChannel.bind(r.getPlayer()), r.setChannelId = r.getPlayer().setChannelId.bind(r.getPlayer()), r.setCollection = r.getPlayer().setCollection.bind(r.getPlayer()), r.setQuality = r.getPlayer().setQuality.bind(r.getPlayer()), r.setVideo = r.getPlayer().setVideo.bind(r.getPlayer()), r.setMuted = r.getPlayer().setMuted.bind(r.getPlayer()), r.setVolume = r.getPlayer().setVolume.bind(r.getPlayer()), r.getMuted = r.getPlayer().getMuted.bind(r.getPlayer()), r.getVolume = r.getPlayer().getVolume.bind(r.getPlayer()), r.getChannel = r.getPlayer().getChannel.bind(r.getPlayer()), r.getChannelId = r.getPlayer().getChannelId.bind(r.getPlayer()), r.getCollection = r.getPlayer().getCollection.bind(r.getPlayer()), r.getCurrentTime = r.getPlayer().getCurrentTime.bind(r.getPlayer()), r.getDuration = r.getPlayer().getDuration.bind(r.getPlayer()), r.getEnded = r.getPlayer().getEnded.bind(r.getPlayer()), r.getPlaybackStats = r.getPlayer().getPlaybackStats.bind(r.getPlayer()), r.getPlayerState = r.getPlayer().getPlayerState.bind(r.getPlayer()), r.getQualities = r.getPlayer().getQualities.bind(r.getPlayer()), r.getQuality = r.getPlayer().getQuality.bind(r.getPlayer()), r.getVideo = r.getPlayer().getVideo.bind(r.getPlayer()), r.isPaused = r.getPlayer().isPaused.bind(r.getPlayer()), function(e) {
var t = (null == e ? void 0 : e.channelId) && (null == e ? void 0 : e.stream);
if (!e || !e.channel && !e.video && !e.collection && !t) throw new C('A channel, video, or collection id must be provided in options');
}(n), r._options = n, r._target = function(e) {
if (!e) throw new C('An element of type String or Element is required');
var t = 'string' == typeof e ? document.getElementById(e) : e;
if (!t) throw new O(e);
if (1 !== t.nodeType) throw new C('An element of type String or Element is required');
return t;
}(t), r._eventEmitter = new c, r.render(), r;
}
return o(t, e), t.prototype.addEventListener = function(e, t) {
this._eventEmitter && this._eventEmitter.on(e, t);
}, t.prototype.removeEventListener = function(e, t) {
this._eventEmitter && this._eventEmitter.removeListener(e, t);
}, t.prototype.getPlayer = function() {
return this._player;
}, t.prototype.destroy = function() {
var e, t;
this._eventEmitter && this._eventEmitter.removeAllListeners(), window.removeEventListener('message', this._forwardEmbedEvents), null === (t = null === (e = this._iframe) || void 0 === e ? void 0 : e.parentNode) || void 0 === t || t.removeChild(this._iframe), this._eventEmitter = null, this._player._setWindowRef(null), this._target = null, this._iframe = null;
}, t.prototype.buildIframe = function() {
return I(this._options, 'embed');
}, t.prototype.render = function() {
if (this._target) {
var e = this.buildIframe();
this._target.appendChild(e), this._iframe = e, window.addEventListener('message', this._forwardEmbedEvents), this._player._setWindowRef(this._iframe.contentWindow);
}
}, t.AUTHENTICATE = s.AUTHENTICATE, t.CAPTIONS = s.CAPTIONS, t.ENDED = s.ENDED, t.ERROR = s.ERROR, t.OFFLINE = s.OFFLINE, t.ONLINE = s.ONLINE, t.PAUSE = s.PAUSE, t.PLAY = s.PLAY, t.PLAYBACK_BLOCKED = s.PLAYBACK_BLOCKED, t.PLAYING = s.PLAYING, t.VIDEO_PAUSE = s.VIDEO_PAUSE, t.VIDEO_PLAY = s.VIDEO_PLAY, t.VIDEO_READY = s.VIDEO_READY, t.READY = s.READY, t.Errors = i({
ABORTED: P.Aborted,
NETWORK: P.Network,
DECODE: P.Decode,
FORMAT_NOT_SUPPORTED: P.FormatNotSupported,
CONTENT_NOT_AVAILABLE: P.ContentNotAvailable,
RENDERER_NOT_AVAILABLE: P.RendererNotAvailable
}, P), t;
}(b);
var L = function(e) {
function t(t, n) {
return e.call(this, t, n) || this;
}
return o(t, e), t.prototype.buildIframe = function() {
return I(this._options, 'player');
}, t;
}(N);
t.default = { Embed: N, Player: L };
}]).default;
}));