Skip to content

Instantly share code, notes, and snippets.

@Beraliv
Created January 7, 2020 08:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Beraliv/92a80cd531cd8e0535f7fabd05fda88d to your computer and use it in GitHub Desktop.
Save Beraliv/92a80cd531cd8e0535f7fabd05fda88d to your computer and use it in GitHub Desktop.
Udemy player bundle
(window.webpackJsonp = window.webpackJsonp || []).push([["vendor-videojs"], {
"./node_modules/video.js/dist/video.cjs.js": function(e, t, r) {
function n(e) {
return e && "object" == typeof e && "default"in e ? e.default : e
}
var i, o, a, s, p = n(r("./node_modules/global/window.js")), f = n(r("./node_modules/global/document.js")), d = n(r("./node_modules/tsml/tsml.js")), v = n(r("./node_modules/safe-json-parse/tuple.js")), y = n(r("./node_modules/xhr/index.js")), l = n(r("./node_modules/videojs-vtt.js/lib/browser-index.js")), m = "6.12.1", u = p.navigator && p.navigator.userAgent || "", c = /AppleWebKit\/([\d.]+)/i.exec(u), h = c ? parseFloat(c.pop()) : null, _ = /iPad/i.test(u), g = /iPhone/i.test(u) && !_, b = /iPod/i.test(u), T = g || _ || b, w = (i = u.match(/OS (\d+)_/i)) && i[1] ? i[1] : null, k = /Android/i.test(u), S = function() {
var e = u.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);
if (!e)
return null;
var t = e[1] && parseFloat(e[1])
, r = e[2] && parseFloat(e[2]);
return t && r ? parseFloat(e[1] + "." + e[2]) : t || null
}(), C = k && /webkit/i.test(u) && S < 2.3, E = k && S < 5 && h < 537, x = /Firefox/i.test(u), j = /Edge/i.test(u), P = !j && (/Chrome/i.test(u) || /CriOS/i.test(u)), O = (o = u.match(/(Chrome|CriOS)\/(\d+)/)) && o[2] ? parseFloat(o[2]) : null, A = /MSIE\s8\.0/.test(u), M = (a = /MSIE\s(\d+)\.\d/.exec(u),
!(s = a && parseFloat(a[1])) && /Trident\/7.0/i.test(u) && /rv:11.0/.test(u) && (s = 11),
s), D = /Safari/i.test(u) && !P && !k && !j, I = (D || T) && !P, R = ie() && ("ontouchstart"in p || p.navigator.maxTouchPoints || p.DocumentTouch && p.document instanceof p.DocumentTouch), N = ie() && "backgroundSize"in p.document.createElement("video").style, L = (Object.freeze || Object)({
IS_IPAD: _,
IS_IPHONE: g,
IS_IPOD: b,
IS_IOS: T,
IOS_VERSION: w,
IS_ANDROID: k,
ANDROID_VERSION: S,
IS_OLD_ANDROID: C,
IS_NATIVE_ANDROID: E,
IS_FIREFOX: x,
IS_EDGE: j,
IS_CHROME: P,
CHROME_VERSION: O,
IS_IE8: A,
IE_VERSION: M,
IS_SAFARI: D,
IS_ANY_SAFARI: I,
TOUCH_ENABLED: R,
BACKGROUND_SIZE_SUPPORTED: N
}), F = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
}
: function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
}
, B = function(e, t) {
if (!(e instanceof t))
throw new TypeError("Cannot call a class as a function")
}, H = function(e, t) {
if ("function" != typeof t && null !== t)
throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}, q = function(e, t) {
if (!e)
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}, V = function(e, t) {
return e.raw = t,
e
}, W = Object.prototype.toString, U = function(e) {
return $(e) ? Object.keys(e) : []
};
function z(t, r) {
U(t).forEach(function(e) {
return r(t[e], e)
})
}
function G(r) {
for (var e = arguments.length, t = Array(1 < e ? e - 1 : 0), n = 1; n < e; n++)
t[n - 1] = arguments[n];
return Object.assign ? Object.assign.apply(Object, [r].concat(t)) : (t.forEach(function(e) {
e && z(e, function(e, t) {
r[t] = e
})
}),
r)
}
function $(e) {
return !!e && "object" === (void 0 === e ? "undefined" : F(e))
}
function K(e) {
return $(e) && "[object Object]" === W.call(e) && e.constructor === Object
}
var X = void 0
, J = "info"
, Q = []
, Y = function(e, t) {
var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : !!M && M < 11
, n = X.levels[J]
, i = new RegExp("^(" + n + ")$");
if ("log" !== e && t.unshift(e.toUpperCase() + ":"),
Q && Q.push([].concat(t)),
t.unshift("VIDEOJS:"),
p.console) {
var o = p.console[e];
o || "debug" !== e || (o = p.console.info || p.console.log),
o && n && i.test(e) && (r && (t = t.map(function(t) {
if ($(t) || Array.isArray(t))
try {
return JSON.stringify(t)
} catch (e) {
return String(t)
}
return String(t)
}).join(" ")),
o.apply ? o[Array.isArray(t) ? "apply" : "call"](p.console, t) : o(t))
}
};
(X = function() {
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
Y("log", t)
}
).levels = {
all: "debug|log|warn|error",
off: "",
debug: "debug|log|warn|error",
info: "log|warn|error",
warn: "warn|error",
error: "error",
DEFAULT: J
},
X.level = function(e) {
if ("string" == typeof e) {
if (!X.levels.hasOwnProperty(e))
throw new Error('"' + e + '" in not a valid log level');
J = e
}
return J
}
,
X.history = function() {
return Q ? [].concat(Q) : []
}
,
X.history.clear = function() {
Q && (Q.length = 0)
}
,
X.history.disable = function() {
null !== Q && (Q.length = 0,
Q = null)
}
,
X.history.enable = function() {
null === Q && (Q = [])
}
,
X.error = function() {
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
return Y("error", t)
}
,
X.warn = function() {
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
return Y("warn", t)
}
,
X.debug = function() {
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
return Y("debug", t)
}
;
var Z = X;
function ee(e, t) {
if (!e || !t)
return "";
if ("function" != typeof p.getComputedStyle)
return e.currentStyle[t] || "";
var r = p.getComputedStyle(e);
return r ? r[t] : ""
}
var te = V(["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set ", " to ", "."], ["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set ", " to ", "."]);
function re(e) {
return "string" == typeof e && /\S/.test(e)
}
function ne(e) {
if (/\s/.test(e))
throw new Error("class has illegal whitespace characters")
}
function ie() {
return f === p.document && void 0 !== f.createElement
}
function oe(e) {
return $(e) && 1 === e.nodeType
}
function ae() {
try {
return p.parent !== p.self
} catch (e) {
return !0
}
}
function se(n) {
return function(e, t) {
if (!re(e))
return f[n](null);
re(t) && (t = f.querySelector(t));
var r = oe(t) ? t : f;
return r[n] && r[n](e)
}
}
function le() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "div"
, r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}
, t = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}
, n = arguments[3]
, i = f.createElement(e);
return Object.getOwnPropertyNames(r).forEach(function(e) {
var t = r[e];
-1 !== e.indexOf("aria-") || "role" === e || "type" === e ? (Z.warn(d(te, e, t)),
i.setAttribute(e, t)) : "textContent" === e ? ue(i, t) : i[e] = t
}),
Object.getOwnPropertyNames(t).forEach(function(e) {
i.setAttribute(e, t[e])
}),
n && je(i, n),
i
}
function ue(e, t) {
return void 0 === e.textContent ? e.innerText = t : e.textContent = t,
e
}
function ce(e, t) {
t.firstChild ? t.insertBefore(e, t.firstChild) : t.appendChild(e)
}
function he(e, t) {
return ne(t),
e.classList ? e.classList.contains(t) : (r = t,
new RegExp("(^|\\s)" + r + "($|\\s)")).test(e.className);
var r
}
function de(e, t) {
return e.classList ? e.classList.add(t) : he(e, t) || (e.className = (e.className + " " + t).trim()),
e
}
function pe(e, t) {
return e.classList ? e.classList.remove(t) : (ne(t),
e.className = e.className.split(/\s+/).filter(function(e) {
return e !== t
}).join(" ")),
e
}
function fe(e, t, r) {
var n = he(e, t);
if ("function" == typeof r && (r = r(e, t)),
"boolean" != typeof r && (r = !n),
r !== n)
return r ? de(e, t) : pe(e, t),
e
}
function ve(r, n) {
Object.getOwnPropertyNames(n).forEach(function(e) {
var t = n[e];
null == t || !1 === t ? r.removeAttribute(e) : r.setAttribute(e, !0 === t ? "" : t)
})
}
function ye(e) {
var t = {}
, r = ",autoplay,controls,playsinline,loop,muted,default,defaultMuted,";
if (e && e.attributes && 0 < e.attributes.length)
for (var n = e.attributes, i = n.length - 1; 0 <= i; i--) {
var o = n[i].name
, a = n[i].value;
"boolean" != typeof e[o] && -1 === r.indexOf("," + o + ",") || (a = null !== a),
t[o] = a
}
return t
}
function me(e, t) {
return e.getAttribute(t)
}
function _e(e, t, r) {
e.setAttribute(t, r)
}
function ge(e, t) {
e.removeAttribute(t)
}
function be() {
f.body.focus(),
f.onselectstart = function() {
return !1
}
}
function Te() {
f.onselectstart = function() {
return !0
}
}
function we(e) {
if (e && e.getBoundingClientRect && e.parentNode) {
var t = e.getBoundingClientRect()
, r = {};
return ["bottom", "height", "left", "right", "top", "width"].forEach(function(e) {
void 0 !== t[e] && (r[e] = t[e])
}),
r.height || (r.height = parseFloat(ee(e, "height"))),
r.width || (r.width = parseFloat(ee(e, "width"))),
r
}
}
function ke(e) {
var t = void 0;
if (e.getBoundingClientRect && e.parentNode && (t = e.getBoundingClientRect()),
!t)
return {
left: 0,
top: 0
};
var r = f.documentElement
, n = f.body
, i = r.clientLeft || n.clientLeft || 0
, o = p.pageXOffset || n.scrollLeft
, a = t.left + o - i
, s = r.clientTop || n.clientTop || 0
, l = p.pageYOffset || n.scrollTop
, u = t.top + l - s;
return {
left: Math.round(a),
top: Math.round(u)
}
}
function Se(e, t) {
var r = {}
, n = ke(e)
, i = e.offsetWidth
, o = e.offsetHeight
, a = n.top
, s = n.left
, l = t.pageY
, u = t.pageX;
return t.changedTouches && (u = t.changedTouches[0].pageX,
l = t.changedTouches[0].pageY),
r.y = Math.max(0, Math.min(1, (a - l + o) / o)),
r.x = Math.max(0, Math.min(1, (u - s) / i)),
r
}
function Ce(e) {
return $(e) && 3 === e.nodeType
}
function Ee(e) {
for (; e.firstChild; )
e.removeChild(e.firstChild);
return e
}
function xe(e) {
return "function" == typeof e && (e = e()),
(Array.isArray(e) ? e : [e]).map(function(e) {
return "function" == typeof e && (e = e()),
oe(e) || Ce(e) ? e : "string" == typeof e && /\S/.test(e) ? f.createTextNode(e) : void 0
}).filter(function(e) {
return e
})
}
function je(t, e) {
return xe(e).forEach(function(e) {
return t.appendChild(e)
}),
t
}
function Pe(e, t) {
return je(Ee(e), t)
}
function Oe(e) {
return void 0 === e.button && void 0 === e.buttons || (0 === e.button && void 0 === e.buttons || (9 === M || 0 === e.button && 1 === e.buttons))
}
var Ae = se("querySelector")
, Me = se("querySelectorAll")
, De = (Object.freeze || Object)({
isReal: ie,
isEl: oe,
isInFrame: ae,
createEl: le,
textContent: ue,
prependTo: ce,
hasClass: he,
addClass: de,
removeClass: pe,
toggleClass: fe,
setAttributes: ve,
getAttributes: ye,
getAttribute: me,
setAttribute: _e,
removeAttribute: ge,
blockTextSelection: be,
unblockTextSelection: Te,
getBoundingClientRect: we,
findPosition: ke,
getPointerPosition: Se,
isTextNode: Ce,
emptyEl: Ee,
normalizeContent: xe,
appendContent: je,
insertContent: Pe,
isSingleLeftClick: Oe,
$: Ae,
$$: Me
})
, Ie = 1;
function Re() {
return Ie++
}
var Ne = {}
, Le = "vdata" + (new Date).getTime();
function Fe(e) {
var t = e[Le];
return t || (t = e[Le] = Re()),
Ne[t] || (Ne[t] = {}),
Ne[t]
}
function Be(e) {
var t = e[Le];
return !!t && !!Object.getOwnPropertyNames(Ne[t]).length
}
function He(t) {
var e = t[Le];
if (e) {
delete Ne[e];
try {
delete t[Le]
} catch (e) {
t.removeAttribute ? t.removeAttribute(Le) : t[Le] = null
}
}
}
function qe(e, t) {
var r = Fe(e);
0 === r.handlers[t].length && (delete r.handlers[t],
e.removeEventListener ? e.removeEventListener(t, r.dispatcher, !1) : e.detachEvent && e.detachEvent("on" + t, r.dispatcher)),
Object.getOwnPropertyNames(r.handlers).length <= 0 && (delete r.handlers,
delete r.dispatcher,
delete r.disabled),
0 === Object.getOwnPropertyNames(r).length && He(e)
}
function Ve(t, r, e, n) {
e.forEach(function(e) {
t(r, e, n)
})
}
function We(e) {
function t() {
return !0
}
function r() {
return !1
}
if (!e || !e.isPropagationStopped) {
var n = e || p.event;
for (var i in e = {},
n)
"layerX" !== i && "layerY" !== i && "keyLocation" !== i && "webkitMovementX" !== i && "webkitMovementY" !== i && ("returnValue" === i && n.preventDefault || (e[i] = n[i]));
if (e.target || (e.target = e.srcElement || f),
e.relatedTarget || (e.relatedTarget = e.fromElement === e.target ? e.toElement : e.fromElement),
e.preventDefault = function() {
n.preventDefault && n.preventDefault(),
e.returnValue = !1,
n.returnValue = !1,
e.defaultPrevented = !0
}
,
e.defaultPrevented = !1,
e.stopPropagation = function() {
n.stopPropagation && n.stopPropagation(),
e.cancelBubble = !0,
n.cancelBubble = !0,
e.isPropagationStopped = t
}
,
e.isPropagationStopped = r,
e.stopImmediatePropagation = function() {
n.stopImmediatePropagation && n.stopImmediatePropagation(),
e.isImmediatePropagationStopped = t,
e.stopPropagation()
}
,
e.isImmediatePropagationStopped = r,
null !== e.clientX && void 0 !== e.clientX) {
var o = f.documentElement
, a = f.body;
e.pageX = e.clientX + (o && o.scrollLeft || a && a.scrollLeft || 0) - (o && o.clientLeft || a && a.clientLeft || 0),
e.pageY = e.clientY + (o && o.scrollTop || a && a.scrollTop || 0) - (o && o.clientTop || a && a.clientTop || 0)
}
e.which = e.charCode || e.keyCode,
null !== e.button && void 0 !== e.button && (e.button = 1 & e.button ? 0 : 4 & e.button ? 1 : 2 & e.button ? 2 : 0)
}
return e
}
var Ue = !1;
!function() {
try {
var e = Object.defineProperty({}, "passive", {
get: function() {
Ue = !0
}
});
p.addEventListener("test", null, e),
p.removeEventListener("test", null, e)
} catch (e) {}
}();
var ze = ["touchstart", "touchmove"];
function Ge(a, e, t) {
if (Array.isArray(e))
return Ve(Ge, a, e, t);
var s = Fe(a);
if (s.handlers || (s.handlers = {}),
s.handlers[e] || (s.handlers[e] = []),
t.guid || (t.guid = Re()),
s.handlers[e].push(t),
s.dispatcher || (s.disabled = !1,
s.dispatcher = function(e, t) {
if (!s.disabled) {
e = We(e);
var r = s.handlers[e.type];
if (r)
for (var n = r.slice(0), i = 0, o = n.length; i < o && !e.isImmediatePropagationStopped(); i++)
try {
n[i].call(a, e, t)
} catch (e) {
Z.error(e)
}
}
}
),
1 === s.handlers[e].length)
if (a.addEventListener) {
var r = !1;
Ue && -1 < ze.indexOf(e) && (r = {
passive: !0
}),
a.addEventListener(e, s.dispatcher, r)
} else
a.attachEvent && a.attachEvent("on" + e, s.dispatcher)
}
function $e(e, t, r) {
if (Be(e)) {
var n = Fe(e);
if (n.handlers) {
if (Array.isArray(t))
return Ve($e, e, t, r);
var i = function(e, t) {
n.handlers[t] = [],
qe(e, t)
};
if (void 0 !== t) {
var o = n.handlers[t];
if (o)
if (r) {
if (r.guid)
for (var a = 0; a < o.length; a++)
o[a].guid === r.guid && o.splice(a--, 1);
qe(e, t)
} else
i(e, t)
} else
for (var s in n.handlers)
Object.prototype.hasOwnProperty.call(n.handlers || {}, s) && i(e, s)
}
}
}
function Ke(e, t, r) {
var n = Be(e) ? Fe(e) : {}
, i = e.parentNode || e.ownerDocument;
if ("string" == typeof t ? t = {
type: t,
target: e
} : t.target || (t.target = e),
t = We(t),
n.dispatcher && n.dispatcher.call(e, t, r),
i && !t.isPropagationStopped() && !0 === t.bubbles)
Ke.call(null, i, t, r);
else if (!i && !t.defaultPrevented) {
var o = Fe(t.target);
t.target[t.type] && (o.disabled = !0,
"function" == typeof t.target[t.type] && t.target[t.type](),
o.disabled = !1)
}
return !t.defaultPrevented
}
function Xe(t, r, n) {
if (Array.isArray(r))
return Ve(Xe, t, r, n);
var e = function e() {
$e(t, r, e),
n.apply(this, arguments)
};
e.guid = n.guid = n.guid || Re(),
Ge(t, r, e)
}
var Je = (Object.freeze || Object)({
fixEvent: We,
on: Ge,
off: $e,
trigger: Ke,
one: Xe
})
, Qe = !1
, Ye = void 0
, Ze = function() {
if (ie() && !1 !== Ye.options.autoSetup) {
var e = f.getElementsByTagName("video")
, t = f.getElementsByTagName("audio")
, r = f.getElementsByTagName("video-js")
, n = [];
if (e && 0 < e.length)
for (var i = 0, o = e.length; i < o; i++)
n.push(e[i]);
if (t && 0 < t.length)
for (var a = 0, s = t.length; a < s; a++)
n.push(t[a]);
if (r && 0 < r.length)
for (var l = 0, u = r.length; l < u; l++)
n.push(r[l]);
if (n && 0 < n.length)
for (var c = 0, h = n.length; c < h; c++) {
var d = n[c];
if (!d || !d.getAttribute) {
et(1);
break
}
void 0 === d.player && null !== d.getAttribute("data-setup") && Ye(d)
}
else
Qe || et(1)
}
};
function et(e, t) {
t && (Ye = t),
p.setTimeout(Ze, e)
}
ie() && "complete" === f.readyState ? Qe = !0 : Xe(p, "load", function() {
Qe = !0
});
var tt = function(e) {
var t = f.createElement("style");
return t.className = e,
t
}
, rt = function(e, t) {
e.styleSheet ? e.styleSheet.cssText = t : e.textContent = t
}
, nt = function(e, t, r) {
t.guid || (t.guid = Re());
var n = function() {
return t.apply(e, arguments)
};
return n.guid = r ? r + "_" + t.guid : t.guid,
n
}
, it = function(t, r) {
var n = Date.now();
return function() {
var e = Date.now();
r <= e - n && (t.apply(void 0, arguments),
n = e)
}
}
, ot = function() {};
ot.prototype.allowedEvents_ = {},
ot.prototype.addEventListener = ot.prototype.on = function(e, t) {
var r = this.addEventListener;
this.addEventListener = function() {}
,
Ge(this, e, t),
this.addEventListener = r
}
,
ot.prototype.removeEventListener = ot.prototype.off = function(e, t) {
$e(this, e, t)
}
,
ot.prototype.one = function(e, t) {
var r = this.addEventListener;
this.addEventListener = function() {}
,
Xe(this, e, t),
this.addEventListener = r
}
,
ot.prototype.dispatchEvent = ot.prototype.trigger = function(e) {
var t = e.type || e;
"string" == typeof e && (e = {
type: t
}),
e = We(e),
this.allowedEvents_[t] && this["on" + t] && this["on" + t](e),
Ke(this, e)
}
;
var at = function(t) {
return t instanceof ot || !!t.eventBusEl_ && ["on", "one", "off", "trigger"].every(function(e) {
return "function" == typeof t[e]
})
}
, st = function(e) {
return "string" == typeof e && /\S/.test(e) || Array.isArray(e) && !!e.length
}
, lt = function(e) {
if (!e.nodeName && !at(e))
throw new Error("Invalid target; must be a DOM node or evented object.")
}
, ut = function(e) {
if (!st(e))
throw new Error("Invalid event type; must be a non-empty string or array.")
}
, ct = function(e) {
if ("function" != typeof e)
throw new Error("Invalid listener; must be a function.")
}
, ht = function(e, t) {
var r = t.length < 3 || t[0] === e || t[0] === e.eventBusEl_
, n = void 0
, i = void 0
, o = void 0;
return o = r ? (n = e.eventBusEl_,
3 <= t.length && t.shift(),
i = t[0],
t[1]) : (n = t[0],
i = t[1],
t[2]),
lt(n),
ut(i),
ct(o),
{
isTargetingSelf: r,
target: n,
type: i,
listener: o = nt(e, o)
}
}
, dt = function(e, t, r, n) {
lt(e),
e.nodeName ? Je[t](e, r, n) : e[t](r, n)
}
, pt = {
on: function() {
for (var e = this, t = arguments.length, r = Array(t), n = 0; n < t; n++)
r[n] = arguments[n];
var i = ht(this, r)
, o = i.isTargetingSelf
, a = i.target
, s = i.type
, l = i.listener;
if (dt(a, "on", s, l),
!o) {
var u = function() {
return e.off(a, s, l)
};
u.guid = l.guid;
var c = function() {
return e.off("dispose", u)
};
c.guid = l.guid,
dt(this, "on", "dispose", u),
dt(a, "on", "dispose", c)
}
},
one: function() {
for (var i = this, e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
var n = ht(this, t)
, o = n.isTargetingSelf
, a = n.target
, s = n.type
, l = n.listener;
if (o)
dt(a, "one", s, l);
else {
var u = function e() {
for (var t = arguments.length, r = Array(t), n = 0; n < t; n++)
r[n] = arguments[n];
i.off(a, s, e),
l.apply(null, r)
};
u.guid = l.guid,
dt(a, "one", s, u)
}
},
off: function(e, t, r) {
if (!e || st(e))
$e(this.eventBusEl_, e, t);
else {
var n = e
, i = t;
lt(n),
ut(i),
ct(r),
r = nt(this, r),
this.off("dispose", r),
n.nodeName ? ($e(n, i, r),
$e(n, "dispose", r)) : at(n) && (n.off(i, r),
n.off("dispose", r))
}
},
trigger: function(e, t) {
return Ke(this.eventBusEl_, e, t)
}
};
function ft(e) {
var t = (1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}).eventBusKey;
if (t) {
if (!e[t].nodeName)
throw new Error('The eventBusKey "' + t + '" does not refer to an element.');
e.eventBusEl_ = e[t]
} else
e.eventBusEl_ = le("span", {
className: "vjs-event-bus"
});
return G(e, pt),
e.on("dispose", function() {
e.off(),
p.setTimeout(function() {
e.eventBusEl_ = null
}, 0)
}),
e
}
var vt = {
state: {},
setState: function(e) {
var r = this;
"function" == typeof e && (e = e());
var n = void 0;
return z(e, function(e, t) {
r.state[t] !== e && ((n = n || {})[t] = {
from: r.state[t],
to: e
}),
r.state[t] = e
}),
n && at(this) && this.trigger({
changes: n,
type: "statechanged"
}),
n
}
};
function yt(e, t) {
return G(e, vt),
e.state = G({}, e.state, t),
"function" == typeof e.handleStateChanged && at(e) && e.on("statechanged", e.handleStateChanged),
e
}
function mt(e) {
return "string" != typeof e ? e : e.charAt(0).toUpperCase() + e.slice(1)
}
function _t() {
for (var r = {}, e = arguments.length, t = Array(e), n = 0; n < e; n++)
t[n] = arguments[n];
return t.forEach(function(e) {
e && z(e, function(e, t) {
K(e) ? (K(r[t]) || (r[t] = {}),
r[t] = _t(r[t], e)) : r[t] = e
})
}),
r
}
var gt = function() {
function u(e, t, r) {
if (B(this, u),
!e && this.play ? this.player_ = e = this : this.player_ = e,
this.options_ = _t({}, this.options_),
t = this.options_ = _t(this.options_, t),
this.id_ = t.id || t.el && t.el.id,
!this.id_) {
var n = e && e.id && e.id() || "no_player";
this.id_ = n + "_component_" + Re()
}
this.name_ = t.name || null,
t.el ? this.el_ = t.el : !1 !== t.createEl && (this.el_ = this.createEl()),
!1 !== t.evented && ft(this, {
eventBusKey: this.el_ ? "el_" : null
}),
yt(this, this.constructor.defaultState),
this.children_ = [],
this.childIndex_ = {},
!(this.childNameIndex_ = {}) !== t.initChildren && this.initChildren(),
this.ready(r),
!1 !== t.reportTouchActivity && this.enableTouchActivity()
}
return u.prototype.dispose = function() {
if (this.trigger({
type: "dispose",
bubbles: !1
}),
this.children_)
for (var e = this.children_.length - 1; 0 <= e; e--)
this.children_[e].dispose && this.children_[e].dispose();
this.children_ = null,
this.childIndex_ = null,
this.childNameIndex_ = null,
this.el_ && (this.el_.parentNode && this.el_.parentNode.removeChild(this.el_),
He(this.el_),
this.el_ = null),
this.player_ = null
}
,
u.prototype.player = function() {
return this.player_
}
,
u.prototype.options = function(e) {
return Z.warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),
e && (this.options_ = _t(this.options_, e)),
this.options_
}
,
u.prototype.el = function() {
return this.el_
}
,
u.prototype.createEl = function(e, t, r) {
return le(e, t, r)
}
,
u.prototype.localize = function(e, i) {
var t = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : e
, r = this.player_.language && this.player_.language()
, n = this.player_.languages && this.player_.languages()
, o = n && n[r]
, a = r && r.split("-")[0]
, s = n && n[a]
, l = t;
return o && o[e] ? l = o[e] : s && s[e] && (l = s[e]),
i && (l = l.replace(/\{(\d+)\}/g, function(e, t) {
var r = i[t - 1]
, n = r;
return void 0 === r && (n = e),
n
})),
l
}
,
u.prototype.contentEl = function() {
return this.contentEl_ || this.el_
}
,
u.prototype.id = function() {
return this.id_
}
,
u.prototype.name = function() {
return this.name_
}
,
u.prototype.children = function() {
return this.children_
}
,
u.prototype.getChildById = function(e) {
return this.childIndex_[e]
}
,
u.prototype.getChild = function(e) {
if (e)
return e = mt(e),
this.childNameIndex_[e]
}
,
u.prototype.addChild = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}
, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : this.children_.length
, n = void 0
, i = void 0;
if ("string" == typeof e) {
i = mt(e);
var o = t.componentClass || i;
t.name = i;
var a = u.getComponent(o);
if (!a)
throw new Error("Component " + o + " does not exist");
if ("function" != typeof a)
return null;
n = new a(this.player_ || this,t)
} else
n = e;
if (this.children_.splice(r, 0, n),
"function" == typeof n.id && (this.childIndex_[n.id()] = n),
(i = i || n.name && mt(n.name())) && (this.childNameIndex_[i] = n),
"function" == typeof n.el && n.el()) {
var s = this.contentEl().children[r] || null;
this.contentEl().insertBefore(n.el(), s)
}
return n
}
,
u.prototype.removeChild = function(e) {
if ("string" == typeof e && (e = this.getChild(e)),
e && this.children_) {
for (var t = !1, r = this.children_.length - 1; 0 <= r; r--)
if (this.children_[r] === e) {
t = !0,
this.children_.splice(r, 1);
break
}
if (t) {
this.childIndex_[e.id()] = null,
this.childNameIndex_[e.name()] = null;
var n = e.el();
n && n.parentNode === this.contentEl() && this.contentEl().removeChild(e.el())
}
}
}
,
u.prototype.initChildren = function() {
var i = this
, n = this.options_.children;
if (n) {
var o = this.options_
, e = void 0
, r = u.getComponent("Tech");
(e = Array.isArray(n) ? n : Object.keys(n)).concat(Object.keys(this.options_).filter(function(t) {
return !e.some(function(e) {
return "string" == typeof e ? t === e : t === e.name
})
})).map(function(e) {
var t = void 0
, r = void 0;
return r = "string" == typeof e ? n[t = e] || i.options_[t] || {} : (t = e.name,
e),
{
name: t,
opts: r
}
}).filter(function(e) {
var t = u.getComponent(e.opts.componentClass || mt(e.name));
return t && !r.isTech(t)
}).forEach(function(e) {
var t = e.name
, r = e.opts;
if (void 0 !== o[t] && (r = o[t]),
!1 !== r) {
!0 === r && (r = {}),
r.playerOptions = i.options_.playerOptions;
var n = i.addChild(t, r);
n && (i[t] = n)
}
})
}
}
,
u.prototype.buildCSSClass = function() {
return ""
}
,
u.prototype.ready = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];
if (e)
return this.isReady_ ? void (t ? e.call(this) : this.setTimeout(e, 1)) : (this.readyQueue_ = this.readyQueue_ || [],
void this.readyQueue_.push(e))
}
,
u.prototype.triggerReady = function() {
this.isReady_ = !0,
this.setTimeout(function() {
var e = this.readyQueue_;
this.readyQueue_ = [],
e && 0 < e.length && e.forEach(function(e) {
e.call(this)
}, this),
this.trigger("ready")
}, 1)
}
,
u.prototype.$ = function(e, t) {
return Ae(e, t || this.contentEl())
}
,
u.prototype.$$ = function(e, t) {
return Me(e, t || this.contentEl())
}
,
u.prototype.hasClass = function(e) {
return he(this.el_, e)
}
,
u.prototype.addClass = function(e) {
de(this.el_, e)
}
,
u.prototype.removeClass = function(e) {
pe(this.el_, e)
}
,
u.prototype.toggleClass = function(e, t) {
fe(this.el_, e, t)
}
,
u.prototype.show = function() {
this.removeClass("vjs-hidden")
}
,
u.prototype.hide = function() {
this.addClass("vjs-hidden")
}
,
u.prototype.lockShowing = function() {
this.addClass("vjs-lock-showing")
}
,
u.prototype.unlockShowing = function() {
this.removeClass("vjs-lock-showing")
}
,
u.prototype.getAttribute = function(e) {
return me(this.el_, e)
}
,
u.prototype.setAttribute = function(e, t) {
_e(this.el_, e, t)
}
,
u.prototype.removeAttribute = function(e) {
ge(this.el_, e)
}
,
u.prototype.width = function(e, t) {
return this.dimension("width", e, t)
}
,
u.prototype.height = function(e, t) {
return this.dimension("height", e, t)
}
,
u.prototype.dimensions = function(e, t) {
this.width(e, !0),
this.height(t)
}
,
u.prototype.dimension = function(e, t, r) {
if (void 0 !== t)
return null !== t && t == t || (t = 0),
-1 !== ("" + t).indexOf("%") || -1 !== ("" + t).indexOf("px") ? this.el_.style[e] = t : this.el_.style[e] = "auto" === t ? "" : t + "px",
void (r || this.trigger("componentresize"));
if (!this.el_)
return 0;
var n = this.el_.style[e]
, i = n.indexOf("px");
return -1 !== i ? parseInt(n.slice(0, i), 10) : parseInt(this.el_["offset" + mt(e)], 10)
}
,
u.prototype.currentDimension = function(e) {
var t = 0;
if ("width" !== e && "height" !== e)
throw new Error("currentDimension only accepts width or height value");
if ("function" == typeof p.getComputedStyle) {
var r = p.getComputedStyle(this.el_);
t = r.getPropertyValue(e) || r[e]
}
if (0 === (t = parseFloat(t))) {
var n = "offset" + mt(e);
t = this.el_[n]
}
return t
}
,
u.prototype.currentDimensions = function() {
return {
width: this.currentDimension("width"),
height: this.currentDimension("height")
}
}
,
u.prototype.currentWidth = function() {
return this.currentDimension("width")
}
,
u.prototype.currentHeight = function() {
return this.currentDimension("height")
}
,
u.prototype.focus = function() {
this.el_.focus()
}
,
u.prototype.blur = function() {
this.el_.blur()
}
,
u.prototype.emitTapEvents = function() {
var t = 0
, n = null
, i = void 0;
this.on("touchstart", function(e) {
1 === e.touches.length && (n = {
pageX: e.touches[0].pageX,
pageY: e.touches[0].pageY
},
t = (new Date).getTime(),
i = !0)
}),
this.on("touchmove", function(e) {
if (1 < e.touches.length)
i = !1;
else if (n) {
var t = e.touches[0].pageX - n.pageX
, r = e.touches[0].pageY - n.pageY;
10 < Math.sqrt(t * t + r * r) && (i = !1)
}
});
var e = function() {
i = !1
};
this.on("touchleave", e),
this.on("touchcancel", e),
this.on("touchend", function(e) {
!(n = null) === i && ((new Date).getTime() - t < 200 && (e.preventDefault(),
this.trigger("tap")))
})
}
,
u.prototype.enableTouchActivity = function() {
if (this.player() && this.player().reportUserActivity) {
var t = nt(this.player(), this.player().reportUserActivity)
, r = void 0;
this.on("touchstart", function() {
t(),
this.clearInterval(r),
r = this.setInterval(t, 250)
});
var e = function(e) {
t(),
this.clearInterval(r)
};
this.on("touchmove", t),
this.on("touchend", e),
this.on("touchcancel", e)
}
}
,
u.prototype.setTimeout = function(e, t) {
var r, n, i = this;
return e = nt(this, e),
r = p.setTimeout(function() {
i.off("dispose", n),
e()
}, t),
(n = function() {
return i.clearTimeout(r)
}
).guid = "vjs-timeout-" + r,
this.on("dispose", n),
r
}
,
u.prototype.clearTimeout = function(e) {
p.clearTimeout(e);
var t = function() {};
return t.guid = "vjs-timeout-" + e,
this.off("dispose", t),
e
}
,
u.prototype.setInterval = function(e, t) {
var r = this;
e = nt(this, e);
var n = p.setInterval(e, t)
, i = function() {
return r.clearInterval(n)
};
return i.guid = "vjs-interval-" + n,
this.on("dispose", i),
n
}
,
u.prototype.clearInterval = function(e) {
p.clearInterval(e);
var t = function() {};
return t.guid = "vjs-interval-" + e,
this.off("dispose", t),
e
}
,
u.prototype.requestAnimationFrame = function(e) {
var t, r, n = this;
return this.supportsRaf_ ? (e = nt(this, e),
t = p.requestAnimationFrame(function() {
n.off("dispose", r),
e()
}),
(r = function() {
return n.cancelAnimationFrame(t)
}
).guid = "vjs-raf-" + t,
this.on("dispose", r),
t) : this.setTimeout(e, 1e3 / 60)
}
,
u.prototype.cancelAnimationFrame = function(e) {
if (this.supportsRaf_) {
p.cancelAnimationFrame(e);
var t = function() {};
return t.guid = "vjs-raf-" + e,
this.off("dispose", t),
e
}
return this.clearTimeout(e)
}
,
u.registerComponent = function(e, t) {
if ("string" != typeof e || !e)
throw new Error('Illegal component name, "' + e + '"; must be a non-empty string.');
var r = u.getComponent("Tech")
, n = r && r.isTech(t)
, i = u === t || u.prototype.isPrototypeOf(t.prototype);
if (n || !i) {
var o = void 0;
throw o = n ? "techs must be registered using Tech.registerTech()" : "must be a Component subclass",
new Error('Illegal component, "' + e + '"; ' + o + ".")
}
e = mt(e),
u.components_ || (u.components_ = {});
var a = u.getComponent("Player");
if ("Player" === e && a && a.players) {
var s = a.players
, l = Object.keys(s);
if (s && 0 < l.length && l.map(function(e) {
return s[e]
}).every(Boolean))
throw new Error("Can not register Player component after player has been created.")
}
return u.components_[e] = t
}
,
u.getComponent = function(e) {
if (e)
return e = mt(e),
u.components_ && u.components_[e] ? u.components_[e] : void 0
}
,
u
}();
function bt(e, t, r, n) {
return function(e, t, r) {
if ("number" != typeof t || t < 0 || r < t)
throw new Error("Failed to execute '" + e + "' on 'TimeRanges': The index provided (" + t + ") is non-numeric or out of bounds (0-" + r + ").")
}(e, n, r.length - 1),
r[n][t]
}
function Tt(e) {
return void 0 === e || 0 === e.length ? {
length: 0,
start: function() {
throw new Error("This TimeRanges object is empty")
},
end: function() {
throw new Error("This TimeRanges object is empty")
}
} : {
length: e.length,
start: bt.bind(null, "start", 0, e),
end: bt.bind(null, "end", 1, e)
}
}
function wt(e, t) {
return Array.isArray(e) ? Tt(e) : void 0 === e || void 0 === t ? Tt() : Tt([[e, t]])
}
function kt(e, t) {
var r = 0
, n = void 0
, i = void 0;
if (!t)
return 0;
e && e.length || (e = wt(0, 0));
for (var o = 0; o < e.length; o++)
n = e.start(o),
t < (i = e.end(o)) && (i = t),
r += i - n;
return r / t
}
gt.prototype.supportsRaf_ = "function" == typeof p.requestAnimationFrame && "function" == typeof p.cancelAnimationFrame,
gt.registerComponent("Component", gt);
for (var St = {}, Ct = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"], ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]], Et = Ct[0], xt = void 0, jt = 0; jt < Ct.length; jt++)
if (Ct[jt][1]in f) {
xt = Ct[jt];
break
}
if (xt)
for (var Pt = 0; Pt < xt.length; Pt++)
St[Et[Pt]] = xt[Pt];
function Ot(e) {
if (e instanceof Ot)
return e;
"number" == typeof e ? this.code = e : "string" == typeof e ? this.message = e : $(e) && ("number" == typeof e.code && (this.code = e.code),
G(this, e)),
this.message || (this.message = Ot.defaultMessages[this.code] || "")
}
Ot.prototype.code = 0,
Ot.prototype.message = "",
Ot.prototype.status = null,
Ot.errorTypes = ["MEDIA_ERR_CUSTOM", "MEDIA_ERR_ABORTED", "MEDIA_ERR_NETWORK", "MEDIA_ERR_DECODE", "MEDIA_ERR_SRC_NOT_SUPPORTED", "MEDIA_ERR_ENCRYPTED"],
Ot.defaultMessages = {
1: "You aborted the media playback",
2: "A network error caused the media download to fail part-way.",
3: "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
4: "The media could not be loaded, either because the server or network failed or because the format is not supported.",
5: "The media is encrypted and we do not have the keys to decrypt it."
};
for (var At = 0; At < Ot.errorTypes.length; At++)
Ot[Ot.errorTypes[At]] = At,
Ot.prototype[Ot.errorTypes[At]] = At;
function Mt(e) {
return null != e && "function" == typeof e.then
}
function Dt(e) {
Mt(e) && e.then(null, function(e) {})
}
var It = function(n) {
return ["kind", "label", "language", "id", "inBandMetadataTrackDispatchType", "mode", "src"].reduce(function(e, t, r) {
return n[t] && (e[t] = n[t]),
e
}, {
cues: n.cues && Array.prototype.map.call(n.cues, function(e) {
return {
startTime: e.startTime,
endTime: e.endTime,
text: e.text,
id: e.id
}
})
})
}
, Rt = function(e) {
var t = e.$$("track")
, r = Array.prototype.map.call(t, function(e) {
return e.track
});
return Array.prototype.map.call(t, function(e) {
var t = It(e.track);
return e.src && (t.src = e.src),
t
}).concat(Array.prototype.filter.call(e.textTracks(), function(e) {
return -1 === r.indexOf(e)
}).map(It))
}
, Nt = function(e, r) {
return e.forEach(function(e) {
var t = r.addRemoteTextTrack(e).track;
!e.src && e.cues && e.cues.forEach(function(e) {
return t.addCue(e)
})
}),
r.textTracks()
}
, Lt = "vjs-modal-dialog"
, Ft = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.opened_ = r.hasBeenOpened_ = r.hasBeenFilled_ = !1,
r.closeable(!r.options_.uncloseable),
r.content(r.options_.content),
r.contentEl_ = le("div", {
className: Lt + "-content"
}, {
role: "document"
}),
r.descEl_ = le("p", {
className: Lt + "-description vjs-control-text",
id: r.el().getAttribute("aria-describedby")
}),
ue(r.descEl_, r.description()),
r.el_.appendChild(r.descEl_),
r.el_.appendChild(r.contentEl_),
r
}
return H(i, n),
i.prototype.createEl = function() {
return n.prototype.createEl.call(this, "div", {
className: this.buildCSSClass(),
tabIndex: -1
}, {
"aria-describedby": this.id() + "_description",
"aria-hidden": "true",
"aria-label": this.label(),
role: "dialog"
})
}
,
i.prototype.dispose = function() {
this.contentEl_ = null,
this.descEl_ = null,
this.previouslyActiveEl_ = null,
n.prototype.dispose.call(this)
}
,
i.prototype.buildCSSClass = function() {
return Lt + " vjs-hidden " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.handleKeyPress = function(e) {
27 === e.which && this.closeable() && this.close()
}
,
i.prototype.label = function() {
return this.localize(this.options_.label || "Modal Window")
}
,
i.prototype.description = function() {
var e = this.options_.description || this.localize("This is a modal window.");
return this.closeable() && (e += " " + this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),
e
}
,
i.prototype.open = function() {
if (!this.opened_) {
var e = this.player();
this.trigger("beforemodalopen"),
this.opened_ = !0,
(this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) && this.fill(),
this.wasPlaying_ = !e.paused(),
this.options_.pauseOnOpen && this.wasPlaying_ && e.pause(),
this.closeable() && this.on(this.el_.ownerDocument, "keydown", nt(this, this.handleKeyPress)),
this.hadControls_ = e.controls(),
e.controls(!1),
this.show(),
this.conditionalFocus_(),
this.el().setAttribute("aria-hidden", "false"),
this.trigger("modalopen"),
this.hasBeenOpened_ = !0
}
}
,
i.prototype.opened = function(e) {
return "boolean" == typeof e && this[e ? "open" : "close"](),
this.opened_
}
,
i.prototype.close = function() {
if (this.opened_) {
var e = this.player();
this.trigger("beforemodalclose"),
this.opened_ = !1,
this.wasPlaying_ && this.options_.pauseOnOpen && e.play(),
this.closeable() && this.off(this.el_.ownerDocument, "keydown", nt(this, this.handleKeyPress)),
this.hadControls_ && e.controls(!0),
this.hide(),
this.el().setAttribute("aria-hidden", "true"),
this.trigger("modalclose"),
this.conditionalBlur_(),
this.options_.temporary && this.dispose()
}
}
,
i.prototype.closeable = function(e) {
if ("boolean" == typeof e) {
var t = this.closeable_ = !!e
, r = this.getChild("closeButton");
if (t && !r) {
var n = this.contentEl_;
this.contentEl_ = this.el_,
r = this.addChild("closeButton", {
controlText: "Close Modal Dialog"
}),
this.contentEl_ = n,
this.on(r, "close", this.close)
}
!t && r && (this.off(r, "close", this.close),
this.removeChild(r),
r.dispose())
}
return this.closeable_
}
,
i.prototype.fill = function() {
this.fillWith(this.content())
}
,
i.prototype.fillWith = function(e) {
var t = this.contentEl()
, r = t.parentNode
, n = t.nextSibling;
this.trigger("beforemodalfill"),
this.hasBeenFilled_ = !0,
r.removeChild(t),
this.empty(),
Pe(t, e),
this.trigger("modalfill"),
n ? r.insertBefore(t, n) : r.appendChild(t);
var i = this.getChild("closeButton");
i && r.appendChild(i.el_)
}
,
i.prototype.empty = function() {
this.trigger("beforemodalempty"),
Ee(this.contentEl()),
this.trigger("modalempty")
}
,
i.prototype.content = function(e) {
return void 0 !== e && (this.content_ = e),
this.content_
}
,
i.prototype.conditionalFocus_ = function() {
var e = f.activeElement
, t = this.player_.el_;
this.previouslyActiveEl_ = null,
(t.contains(e) || t === e) && (this.previouslyActiveEl_ = e,
this.focus(),
this.on(f, "keydown", this.handleKeyDown))
}
,
i.prototype.conditionalBlur_ = function() {
this.previouslyActiveEl_ && (this.previouslyActiveEl_.focus(),
this.previouslyActiveEl_ = null),
this.off(f, "keydown", this.handleKeyDown)
}
,
i.prototype.handleKeyDown = function(e) {
if (9 === e.which) {
for (var t = this.focusableEls_(), r = this.el_.querySelector(":focus"), n = void 0, i = 0; i < t.length; i++)
if (r === t[i]) {
n = i;
break
}
f.activeElement === this.el_ && (n = 0),
e.shiftKey && 0 === n ? (t[t.length - 1].focus(),
e.preventDefault()) : e.shiftKey || n !== t.length - 1 || (t[0].focus(),
e.preventDefault())
}
}
,
i.prototype.focusableEls_ = function() {
var e = this.el_.querySelectorAll("*");
return Array.prototype.filter.call(e, function(e) {
return (e instanceof p.HTMLAnchorElement || e instanceof p.HTMLAreaElement) && e.hasAttribute("href") || (e instanceof p.HTMLInputElement || e instanceof p.HTMLSelectElement || e instanceof p.HTMLTextAreaElement || e instanceof p.HTMLButtonElement) && !e.hasAttribute("disabled") || e instanceof p.HTMLIFrameElement || e instanceof p.HTMLObjectElement || e instanceof p.HTMLEmbedElement || e.hasAttribute("tabindex") && -1 !== e.getAttribute("tabindex") || e.hasAttribute("contenteditable")
})
}
,
i
}(gt);
Ft.prototype.options_ = {
pauseOnOpen: !0,
temporary: !0
},
gt.registerComponent("ModalDialog", Ft);
var Bt = function(o) {
function a() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : []
, t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
B(this, a);
var r = q(this, o.call(this));
if (!t && (t = r,
A))
for (var n in t = f.createElement("custom"),
a.prototype)
"constructor" !== n && (t[n] = a.prototype[n]);
t.tracks_ = [],
Object.defineProperty(t, "length", {
get: function() {
return this.tracks_.length
}
});
for (var i = 0; i < e.length; i++)
t.addTrack(e[i]);
return q(r, t)
}
return H(a, o),
a.prototype.addTrack = function(e) {
var t = this.tracks_.length;
"" + t in this || Object.defineProperty(this, t, {
get: function() {
return this.tracks_[t]
}
}),
-1 === this.tracks_.indexOf(e) && (this.tracks_.push(e),
this.trigger({
track: e,
type: "addtrack"
}))
}
,
a.prototype.removeTrack = function(e) {
for (var t = void 0, r = 0, n = this.length; r < n; r++)
if (this[r] === e) {
(t = this[r]).off && t.off(),
this.tracks_.splice(r, 1);
break
}
t && this.trigger({
track: t,
type: "removetrack"
})
}
,
a.prototype.getTrackById = function(e) {
for (var t = null, r = 0, n = this.length; r < n; r++) {
var i = this[r];
if (i.id === e) {
t = i;
break
}
}
return t
}
,
a
}(ot);
for (var Ht in Bt.prototype.allowedEvents_ = {
change: "change",
addtrack: "addtrack",
removetrack: "removetrack"
},
Bt.prototype.allowedEvents_)
Bt.prototype["on" + Ht] = null;
var qt = function(e, t) {
for (var r = 0; r < e.length; r++)
Object.keys(e[r]).length && t.id !== e[r].id && (e[r].enabled = !1)
}
, Vt = function(a) {
function s() {
var e, t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
B(this, s);
for (var r = void 0, n = t.length - 1; 0 <= n; n--)
if (t[n].enabled) {
qt(t, t[n]);
break
}
if (A) {
for (var i in r = f.createElement("custom"),
Bt.prototype)
"constructor" !== i && (r[i] = Bt.prototype[i]);
for (var o in s.prototype)
"constructor" !== o && (r[o] = s.prototype[o])
}
return (r = e = q(this, a.call(this, t, r))).changing_ = !1,
q(e, r)
}
return H(s, a),
s.prototype.addTrack = function(e) {
var t = this;
e.enabled && qt(this, e),
a.prototype.addTrack.call(this, e),
e.addEventListener && e.addEventListener("enabledchange", function() {
t.changing_ || (t.changing_ = !0,
qt(t, e),
t.changing_ = !1,
t.trigger("change"))
})
}
,
s
}(Bt)
, Wt = function(e, t) {
for (var r = 0; r < e.length; r++)
Object.keys(e[r]).length && t.id !== e[r].id && (e[r].selected = !1)
}
, Ut = function(a) {
function s() {
var e, t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
B(this, s);
for (var r = void 0, n = t.length - 1; 0 <= n; n--)
if (t[n].selected) {
Wt(t, t[n]);
break
}
if (A) {
for (var i in r = f.createElement("custom"),
Bt.prototype)
"constructor" !== i && (r[i] = Bt.prototype[i]);
for (var o in s.prototype)
"constructor" !== o && (r[o] = s.prototype[o])
}
return (r = e = q(this, a.call(this, t, r))).changing_ = !1,
Object.defineProperty(r, "selectedIndex", {
get: function() {
for (var e = 0; e < this.length; e++)
if (this[e].selected)
return e;
return -1
},
set: function() {}
}),
q(e, r)
}
return H(s, a),
s.prototype.addTrack = function(e) {
var t = this;
e.selected && Wt(this, e),
a.prototype.addTrack.call(this, e),
e.addEventListener && e.addEventListener("selectedchange", function() {
t.changing_ || (t.changing_ = !0,
Wt(t, e),
t.changing_ = !1,
t.trigger("change"))
})
}
,
s
}(Bt)
, zt = function(o) {
function a() {
var e, t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
B(this, a);
var r = void 0;
if (A) {
for (var n in r = f.createElement("custom"),
Bt.prototype)
"constructor" !== n && (r[n] = Bt.prototype[n]);
for (var i in a.prototype)
"constructor" !== i && (r[i] = a.prototype[i])
}
return e = q(this, o.call(this, t, r)),
q(r = e, r)
}
return H(a, o),
a.prototype.addTrack = function(e) {
o.prototype.addTrack.call(this, e),
e.addEventListener("modechange", nt(this, function() {
this.trigger("change")
}));
-1 === ["metadata", "chapters"].indexOf(e.kind) && e.addEventListener("modechange", nt(this, function() {
this.trigger("selectedlanguagechange")
}))
}
,
a
}(Bt)
, Gt = function() {
function o() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
B(this, o);
var t = this;
if (A)
for (var r in t = f.createElement("custom"),
o.prototype)
"constructor" !== r && (t[r] = o.prototype[r]);
t.trackElements_ = [],
Object.defineProperty(t, "length", {
get: function() {
return this.trackElements_.length
}
});
for (var n = 0, i = e.length; n < i; n++)
t.addTrackElement_(e[n]);
if (A)
return t
}
return o.prototype.addTrackElement_ = function(e) {
var t = this.trackElements_.length;
"" + t in this || Object.defineProperty(this, t, {
get: function() {
return this.trackElements_[t]
}
}),
-1 === this.trackElements_.indexOf(e) && this.trackElements_.push(e)
}
,
o.prototype.getTrackElementByTrack_ = function(e) {
for (var t = void 0, r = 0, n = this.trackElements_.length; r < n; r++)
if (e === this.trackElements_[r].track) {
t = this.trackElements_[r];
break
}
return t
}
,
o.prototype.removeTrackElement_ = function(e) {
for (var t = 0, r = this.trackElements_.length; t < r; t++)
if (e === this.trackElements_[t]) {
this.trackElements_.splice(t, 1);
break
}
}
,
o
}()
, $t = function() {
function n(e) {
B(this, n);
var t = this;
if (A)
for (var r in t = f.createElement("custom"),
n.prototype)
"constructor" !== r && (t[r] = n.prototype[r]);
if (n.prototype.setCues_.call(t, e),
Object.defineProperty(t, "length", {
get: function() {
return this.length_
}
}),
A)
return t
}
return n.prototype.setCues_ = function(e) {
var t = this.length || 0
, r = 0
, n = e.length;
this.cues_ = e,
this.length_ = e.length;
var i = function(e) {
"" + e in this || Object.defineProperty(this, "" + e, {
get: function() {
return this.cues_[e]
}
})
};
if (t < n)
for (r = t; r < n; r++)
i.call(this, r)
}
,
n.prototype.getCueById = function(e) {
for (var t = null, r = 0, n = this.length; r < n; r++) {
var i = this[r];
if (i.id === e) {
t = i;
break
}
}
return t
}
,
n
}()
, Kt = {
alternative: "alternative",
captions: "captions",
main: "main",
sign: "sign",
subtitles: "subtitles",
commentary: "commentary"
}
, Xt = {
alternative: "alternative",
descriptions: "descriptions",
main: "main",
"main-desc": "main-desc",
translation: "translation",
commentary: "commentary"
}
, Jt = {
subtitles: "subtitles",
captions: "captions",
descriptions: "descriptions",
chapters: "chapters",
metadata: "metadata"
}
, Qt = {
disabled: "disabled",
hidden: "hidden",
showing: "showing"
}
, Yt = function(s) {
function l() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
B(this, l);
var t = q(this, s.call(this))
, r = t;
if (A)
for (var n in r = f.createElement("custom"),
l.prototype)
"constructor" !== n && (r[n] = l.prototype[n]);
var i = {
id: e.id || "vjs_track_" + Re(),
kind: e.kind || "",
label: e.label || "",
language: e.language || ""
}
, o = function(e) {
Object.defineProperty(r, e, {
get: function() {
return i[e]
},
set: function() {}
})
};
for (var a in i)
o(a);
return q(t, r)
}
return H(l, s),
l
}(ot)
, Zt = function(e) {
var t = ["protocol", "hostname", "port", "pathname", "search", "hash", "host"]
, r = f.createElement("a");
r.href = e;
var n = "" === r.host && "file:" !== r.protocol
, i = void 0;
n && ((i = f.createElement("div")).innerHTML = '<a href="' + e + '"></a>',
r = i.firstChild,
i.setAttribute("style", "display:none; position:absolute;"),
f.body.appendChild(i));
for (var o = {}, a = 0; a < t.length; a++)
o[t[a]] = r[t[a]];
return "http:" === o.protocol && (o.host = o.host.replace(/:80$/, "")),
"https:" === o.protocol && (o.host = o.host.replace(/:443$/, "")),
o.protocol || (o.protocol = p.location.protocol),
n && f.body.removeChild(i),
o
}
, er = function(e) {
if (!e.match(/^https?:\/\//)) {
var t = f.createElement("div");
t.innerHTML = '<a href="' + e + '">x</a>',
e = t.firstChild.href
}
return e
}
, tr = function(e) {
if ("string" == typeof e) {
var t = /^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i.exec(e);
if (t)
return t.pop().toLowerCase()
}
return ""
}
, rr = function(e) {
var t = p.location
, r = Zt(e);
return (":" === r.protocol ? t.protocol : r.protocol) + r.host !== t.protocol + t.host
}
, nr = (Object.freeze || Object)({
parseUrl: Zt,
getAbsoluteURL: er,
getFileExtension: tr,
isCrossOrigin: rr
})
, ir = function(e, t) {
var r = new p.WebVTT.Parser(p,p.vttjs,p.WebVTT.StringDecoder())
, n = [];
r.oncue = function(e) {
t.addCue(e)
}
,
r.onparsingerror = function(e) {
n.push(e)
}
,
r.onflush = function() {
t.trigger({
type: "loadeddata",
target: t
})
}
,
r.parse(e),
0 < n.length && (p.console && p.console.groupCollapsed && p.console.groupCollapsed("Text Track parsing errors for " + t.src),
n.forEach(function(e) {
return Z.error(e)
}),
p.console && p.console.groupEnd && p.console.groupEnd()),
r.flush()
}
, or = function(h) {
function d() {
var e, t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
if (B(this, d),
!t.tech)
throw new Error("A tech was not provided.");
var r = _t(t, {
kind: Jt[t.kind] || "subtitles",
language: t.language || t.srclang || ""
})
, n = Qt[r.mode] || "disabled"
, i = r.default;
"metadata" !== r.kind && "chapters" !== r.kind || (n = "hidden");
var o = e = q(this, h.call(this, r));
if (o.tech_ = r.tech,
A)
for (var a in d.prototype)
"constructor" !== a && (o[a] = d.prototype[a]);
o.cues_ = [],
o.activeCues_ = [];
var s = new $t(o.cues_)
, l = new $t(o.activeCues_)
, u = !1
, c = nt(o, function() {
this.activeCues = this.activeCues,
u && (this.trigger("cuechange"),
u = !1)
});
return "disabled" !== n && o.tech_.ready(function() {
o.tech_.on("timeupdate", c)
}, !0),
Object.defineProperty(o, "default", {
get: function() {
return i
},
set: function() {}
}),
Object.defineProperty(o, "mode", {
get: function() {
return n
},
set: function(e) {
var t = this;
Qt[e] && ("showing" === (n = e) && this.tech_.ready(function() {
t.tech_.on("timeupdate", c)
}, !0),
this.trigger("modechange"))
}
}),
Object.defineProperty(o, "cues", {
get: function() {
return this.loaded_ ? s : null
},
set: function() {}
}),
Object.defineProperty(o, "activeCues", {
get: function() {
if (!this.loaded_)
return null;
if (0 === this.cues.length)
return l;
for (var e = this.tech_.currentTime(), t = [], r = 0, n = this.cues.length; r < n; r++) {
var i = this.cues[r];
i.startTime <= e && i.endTime >= e ? t.push(i) : i.startTime === i.endTime && i.startTime <= e && i.startTime + .5 >= e && t.push(i)
}
if (u = !1,
t.length !== this.activeCues_.length)
u = !0;
else
for (var o = 0; o < t.length; o++)
-1 === this.activeCues_.indexOf(t[o]) && (u = !0);
return this.activeCues_ = t,
l.setCues_(this.activeCues_),
l
},
set: function() {}
}),
r.src ? (o.src = r.src,
function(e, i) {
var t = {
uri: e
}
, r = rr(e);
r && (t.cors = r),
y(t, nt(this, function(e, t, r) {
if (e)
return Z.error(e, t);
if (i.loaded_ = !0,
"function" != typeof p.WebVTT) {
if (i.tech_) {
var n = function() {
return ir(r, i)
};
i.tech_.on("vttjsloaded", n),
i.tech_.on("vttjserror", function() {
Z.error("vttjs failed to load, stopping trying to process " + i.src),
i.tech_.off("vttjsloaded", n)
})
}
} else
ir(r, i)
}))
}(r.src, o)) : o.loaded_ = !0,
q(e, o)
}
return H(d, h),
d.prototype.addCue = function(e) {
var t = e;
if (p.vttjs && !(e instanceof p.vttjs.VTTCue)) {
for (var r in t = new p.vttjs.VTTCue(e.startTime,e.endTime,e.text),
e)
r in t || (t[r] = e[r]);
t.id = e.id,
t.originalCue_ = e
}
for (var n = this.tech_.textTracks(), i = 0; i < n.length; i++)
n[i] !== this && n[i].removeCue(t);
this.cues_.push(t),
this.cues.setCues_(this.cues_)
}
,
d.prototype.removeCue = function(e) {
for (var t = this.cues_.length; t--; ) {
var r = this.cues_[t];
if (r === e || r.originalCue_ && r.originalCue_ === e) {
this.cues_.splice(t, 1),
this.cues.setCues_(this.cues_);
break
}
}
}
,
d
}(Yt);
or.prototype.allowedEvents_ = {
cuechange: "cuechange"
};
var ar = function(a) {
function s() {
var e, t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
B(this, s);
var r = _t(t, {
kind: Xt[t.kind] || ""
})
, n = e = q(this, a.call(this, r))
, i = !1;
if (A)
for (var o in s.prototype)
"constructor" !== o && (n[o] = s.prototype[o]);
return Object.defineProperty(n, "enabled", {
get: function() {
return i
},
set: function(e) {
"boolean" == typeof e && e !== i && (i = e,
this.trigger("enabledchange"))
}
}),
r.enabled && (n.enabled = r.enabled),
n.loaded_ = !0,
q(e, n)
}
return H(s, a),
s
}(Yt)
, sr = function(a) {
function s() {
var e, t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
B(this, s);
var r = _t(t, {
kind: Kt[t.kind] || ""
})
, n = e = q(this, a.call(this, r))
, i = !1;
if (A)
for (var o in s.prototype)
"constructor" !== o && (n[o] = s.prototype[o]);
return Object.defineProperty(n, "selected", {
get: function() {
return i
},
set: function(e) {
"boolean" == typeof e && e !== i && (i = e,
this.trigger("selectedchange"))
}
}),
r.selected && (n.selected = r.selected),
q(e, n)
}
return H(s, a),
s
}(Yt)
, lr = function(a) {
function s() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
B(this, s);
var t = q(this, a.call(this))
, r = void 0
, n = t;
if (A)
for (var i in n = f.createElement("custom"),
s.prototype)
"constructor" !== i && (n[i] = s.prototype[i]);
var o = new or(e);
return n.kind = o.kind,
n.src = o.src,
n.srclang = o.language,
n.label = o.label,
n.default = o.default,
Object.defineProperty(n, "readyState", {
get: function() {
return r
}
}),
Object.defineProperty(n, "track", {
get: function() {
return o
}
}),
r = 0,
o.addEventListener("loadeddata", function() {
r = 2,
n.trigger({
type: "load",
target: n
})
}),
A ? q(t, n) : t
}
return H(s, a),
s
}(ot);
lr.prototype.allowedEvents_ = {
load: "load"
},
lr.NONE = 0,
lr.LOADING = 1,
lr.LOADED = 2,
lr.ERROR = 3;
var ur = {
audio: {
ListClass: Vt,
TrackClass: ar,
capitalName: "Audio"
},
video: {
ListClass: Ut,
TrackClass: sr,
capitalName: "Video"
},
text: {
ListClass: zt,
TrackClass: or,
capitalName: "Text"
}
};
Object.keys(ur).forEach(function(e) {
ur[e].getterName = e + "Tracks",
ur[e].privateName = e + "Tracks_"
});
var cr = {
remoteText: {
ListClass: zt,
TrackClass: or,
capitalName: "RemoteText",
getterName: "remoteTextTracks",
privateName: "remoteTextTracks_"
},
remoteTextEl: {
ListClass: Gt,
TrackClass: lr,
capitalName: "RemoteTextTrackEls",
getterName: "remoteTextTrackEls",
privateName: "remoteTextTrackEls_"
}
}
, hr = _t(ur, cr);
cr.names = Object.keys(cr),
ur.names = Object.keys(ur),
hr.names = [].concat(cr.names).concat(ur.names);
var dr = function(t) {
function i() {
var r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}
, e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : function() {}
;
B(this, i),
r.reportTouchActivity = !1;
var n = q(this, t.call(this, null, r, e));
return n.hasStarted_ = !1,
n.on("playing", function() {
this.hasStarted_ = !0
}),
n.on("loadstart", function() {
this.hasStarted_ = !1
}),
hr.names.forEach(function(e) {
var t = hr[e];
r && r[t.getterName] && (n[t.privateName] = r[t.getterName])
}),
n.featuresProgressEvents || n.manualProgressOn(),
n.featuresTimeupdateEvents || n.manualTimeUpdatesOn(),
["Text", "Audio", "Video"].forEach(function(e) {
!1 === r["native" + e + "Tracks"] && (n["featuresNative" + e + "Tracks"] = !1)
}),
!1 === r.nativeCaptions || !1 === r.nativeTextTracks ? n.featuresNativeTextTracks = !1 : !0 !== r.nativeCaptions && !0 !== r.nativeTextTracks || (n.featuresNativeTextTracks = !0),
n.featuresNativeTextTracks || n.emulateTextTracks(),
n.autoRemoteTextTracks_ = new hr.text.ListClass,
n.initTrackListeners(),
r.nativeControlsForTouch || n.emitTapEvents(),
n.constructor && (n.name_ = n.constructor.name || "Unknown Tech"),
n
}
return H(i, t),
i.prototype.triggerSourceset = function(e) {
var t = this;
this.isReady_ || this.one("ready", function() {
return t.setTimeout(function() {
return t.triggerSourceset(e)
}, 1)
}),
this.trigger({
src: e,
type: "sourceset"
})
}
,
i.prototype.manualProgressOn = function() {
this.on("durationchange", this.onDurationChange),
this.manualProgress = !0,
this.one("ready", this.trackProgress)
}
,
i.prototype.manualProgressOff = function() {
this.manualProgress = !1,
this.stopTrackingProgress(),
this.off("durationchange", this.onDurationChange)
}
,
i.prototype.trackProgress = function(e) {
this.stopTrackingProgress(),
this.progressInterval = this.setInterval(nt(this, function() {
var e = this.bufferedPercent();
this.bufferedPercent_ !== e && this.trigger("progress"),
1 === (this.bufferedPercent_ = e) && this.stopTrackingProgress()
}), 500)
}
,
i.prototype.onDurationChange = function(e) {
this.duration_ = this.duration()
}
,
i.prototype.buffered = function() {
return wt(0, 0)
}
,
i.prototype.bufferedPercent = function() {
return kt(this.buffered(), this.duration_)
}
,
i.prototype.stopTrackingProgress = function() {
this.clearInterval(this.progressInterval)
}
,
i.prototype.manualTimeUpdatesOn = function() {
this.manualTimeUpdates = !0,
this.on("play", this.trackCurrentTime),
this.on("pause", this.stopTrackingCurrentTime)
}
,
i.prototype.manualTimeUpdatesOff = function() {
this.manualTimeUpdates = !1,
this.stopTrackingCurrentTime(),
this.off("play", this.trackCurrentTime),
this.off("pause", this.stopTrackingCurrentTime)
}
,
i.prototype.trackCurrentTime = function() {
this.currentTimeInterval && this.stopTrackingCurrentTime(),
this.currentTimeInterval = this.setInterval(function() {
this.trigger({
type: "timeupdate",
target: this,
manuallyTriggered: !0
})
}, 250)
}
,
i.prototype.stopTrackingCurrentTime = function() {
this.clearInterval(this.currentTimeInterval),
this.trigger({
type: "timeupdate",
target: this,
manuallyTriggered: !0
})
}
,
i.prototype.dispose = function() {
this.clearTracks(ur.names),
this.manualProgress && this.manualProgressOff(),
this.manualTimeUpdates && this.manualTimeUpdatesOff(),
t.prototype.dispose.call(this)
}
,
i.prototype.clearTracks = function(e) {
var i = this;
(e = [].concat(e)).forEach(function(e) {
for (var t = i[e + "Tracks"]() || [], r = t.length; r--; ) {
var n = t[r];
"text" === e && i.removeRemoteTextTrack(n),
t.removeTrack(n)
}
})
}
,
i.prototype.cleanupAutoTextTracks = function() {
for (var e = this.autoRemoteTextTracks_ || [], t = e.length; t--; ) {
var r = e[t];
this.removeRemoteTextTrack(r)
}
}
,
i.prototype.reset = function() {}
,
i.prototype.error = function(e) {
return void 0 !== e && (this.error_ = new Ot(e),
this.trigger("error")),
this.error_
}
,
i.prototype.played = function() {
return this.hasStarted_ ? wt(0, 0) : wt()
}
,
i.prototype.setCurrentTime = function() {
this.manualTimeUpdates && this.trigger({
type: "timeupdate",
target: this,
manuallyTriggered: !0
})
}
,
i.prototype.initTrackListeners = function() {
var i = this;
ur.names.forEach(function(e) {
var t = ur[e]
, r = function() {
i.trigger(e + "trackchange")
}
, n = i[t.getterName]();
n.addEventListener("removetrack", r),
n.addEventListener("addtrack", r),
i.on("dispose", function() {
n.removeEventListener("removetrack", r),
n.removeEventListener("addtrack", r)
})
})
}
,
i.prototype.addWebVttScript_ = function() {
var e = this;
if (!p.WebVTT)
if (f.body.contains(this.el())) {
if (!this.options_["vtt.js"] && K(l) && 0 < Object.keys(l).length)
return void this.trigger("vttjsloaded");
var t = f.createElement("script");
t.src = this.options_["vtt.js"] || "https://vjs.zencdn.net/vttjs/0.12.4/vtt.min.js",
t.onload = function() {
e.trigger("vttjsloaded")
}
,
t.onerror = function() {
e.trigger("vttjserror")
}
,
this.on("dispose", function() {
t.onload = null,
t.onerror = null
}),
p.WebVTT = !0,
this.el().parentNode.appendChild(t)
} else
this.ready(this.addWebVttScript_)
}
,
i.prototype.emulateTextTracks = function() {
var e = this
, r = this.textTracks()
, t = this.remoteTextTracks()
, n = function(e) {
return r.addTrack(e.track)
}
, i = function(e) {
return r.removeTrack(e.track)
};
t.on("addtrack", n),
t.on("removetrack", i),
this.addWebVttScript_();
var o = function() {
return e.trigger("texttrackchange")
}
, a = function() {
o();
for (var e = 0; e < r.length; e++) {
var t = r[e];
t.removeEventListener("cuechange", o),
"showing" === t.mode && t.addEventListener("cuechange", o)
}
};
a(),
r.addEventListener("change", a),
r.addEventListener("addtrack", a),
r.addEventListener("removetrack", a),
this.on("dispose", function() {
t.off("addtrack", n),
t.off("removetrack", i),
r.removeEventListener("change", a),
r.removeEventListener("addtrack", a),
r.removeEventListener("removetrack", a);
for (var e = 0; e < r.length; e++) {
r[e].removeEventListener("cuechange", o)
}
})
}
,
i.prototype.addTextTrack = function(e, t, r) {
if (!e)
throw new Error("TextTrack kind is required but was not provided");
return function(e, t, r, n) {
var i = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : {}
, o = e.textTracks();
i.kind = t,
r && (i.label = r),
n && (i.language = n),
i.tech = e;
var a = new hr.text.TrackClass(i);
return o.addTrack(a),
a
}(this, e, t, r)
}
,
i.prototype.createRemoteTextTrack = function(e) {
var t = _t(e, {
tech: this
});
return new cr.remoteTextEl.TrackClass(t)
}
,
i.prototype.addRemoteTextTrack = function() {
var e = this
, t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}
, r = arguments[1]
, n = this.createRemoteTextTrack(t);
return !0 !== r && !1 !== r && (Z.warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'),
r = !0),
this.remoteTextTrackEls().addTrackElement_(n),
this.remoteTextTracks().addTrack(n.track),
!0 !== r && this.ready(function() {
return e.autoRemoteTextTracks_.addTrack(n.track)
}),
n
}
,
i.prototype.removeRemoteTextTrack = function(e) {
var t = this.remoteTextTrackEls().getTrackElementByTrack_(e);
this.remoteTextTrackEls().removeTrackElement_(t),
this.remoteTextTracks().removeTrack(e),
this.autoRemoteTextTracks_.removeTrack(e)
}
,
i.prototype.getVideoPlaybackQuality = function() {
return {}
}
,
i.prototype.setPoster = function() {}
,
i.prototype.playsinline = function() {}
,
i.prototype.setPlaysinline = function() {}
,
i.prototype.canPlayType = function() {
return ""
}
,
i.canPlayType = function() {
return ""
}
,
i.canPlaySource = function(e, t) {
return i.canPlayType(e.type)
}
,
i.isTech = function(e) {
return e.prototype instanceof i || e instanceof i || e === i
}
,
i.registerTech = function(e, t) {
if (i.techs_ || (i.techs_ = {}),
!i.isTech(t))
throw new Error("Tech " + e + " must be a Tech");
if (!i.canPlayType)
throw new Error("Techs must have a static canPlayType method on them");
if (!i.canPlaySource)
throw new Error("Techs must have a static canPlaySource method on them");
return e = mt(e),
i.techs_[e] = t,
"Tech" !== e && i.defaultTechOrder_.push(e),
t
}
,
i.getTech = function(e) {
if (e)
return e = mt(e),
i.techs_ && i.techs_[e] ? i.techs_[e] : p && p.videojs && p.videojs[e] ? (Z.warn("The " + e + " tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"),
p.videojs[e]) : void 0
}
,
i
}(gt);
hr.names.forEach(function(e) {
var t = hr[e];
dr.prototype[t.getterName] = function() {
return this[t.privateName] = this[t.privateName] || new t.ListClass,
this[t.privateName]
}
}),
dr.prototype.featuresVolumeControl = !0,
dr.prototype.featuresMuteControl = !0,
dr.prototype.featuresFullscreenResize = !1,
dr.prototype.featuresPlaybackRate = !1,
dr.prototype.featuresProgressEvents = !1,
dr.prototype.featuresSourceset = !1,
dr.prototype.featuresTimeupdateEvents = !1,
dr.prototype.featuresNativeTextTracks = !1,
dr.withSourceHandlers = function(i) {
i.registerSourceHandler = function(e, t) {
var r = i.sourceHandlers;
r || (r = i.sourceHandlers = []),
void 0 === t && (t = r.length),
r.splice(t, 0, e)
}
,
i.canPlayType = function(e) {
for (var t = i.sourceHandlers || [], r = void 0, n = 0; n < t.length; n++)
if (r = t[n].canPlayType(e))
return r;
return ""
}
,
i.selectSourceHandler = function(e, t) {
for (var r = i.sourceHandlers || [], n = 0; n < r.length; n++)
if (r[n].canHandleSource(e, t))
return r[n];
return null
}
,
i.canPlaySource = function(e, t) {
var r = i.selectSourceHandler(e, t);
return r ? r.canHandleSource(e, t) : ""
}
;
["seekable", "seeking", "duration"].forEach(function(e) {
var t = this[e];
"function" == typeof t && (this[e] = function() {
return this.sourceHandler_ && this.sourceHandler_[e] ? this.sourceHandler_[e].apply(this.sourceHandler_, arguments) : t.apply(this, arguments)
}
)
}, i.prototype),
i.prototype.setSource = function(e) {
var t = i.selectSourceHandler(e, this.options_);
t || (i.nativeSourceHandler ? t = i.nativeSourceHandler : Z.error("No source hander found for the current source.")),
this.disposeSourceHandler(),
this.off("dispose", this.disposeSourceHandler),
t !== i.nativeSourceHandler && (this.currentSource_ = e),
this.sourceHandler_ = t.handleSource(e, this, this.options_),
this.on("dispose", this.disposeSourceHandler)
}
,
i.prototype.disposeSourceHandler = function() {
this.currentSource_ && (this.clearTracks(["audio", "video"]),
this.currentSource_ = null),
this.cleanupAutoTextTracks(),
this.sourceHandler_ && (this.sourceHandler_.dispose && this.sourceHandler_.dispose(),
this.sourceHandler_ = null)
}
}
,
gt.registerComponent("Tech", dr),
dr.registerTech("Tech", dr),
dr.defaultTechOrder_ = [];
var pr = {}
, fr = {}
, vr = {};
function yr(e, t, r) {
e.setTimeout(function() {
return function r() {
var n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [];
var i = arguments[2];
var o = arguments[3];
var a = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : [];
var s = 5 < arguments.length && void 0 !== arguments[5] && arguments[5];
var t = e[0]
, l = e.slice(1);
if ("string" == typeof t)
r(n, pr[t], i, o, a, s);
else if (t) {
var u = wr(o, t);
if (!u.setSource)
return a.push(u),
r(n, l, i, o, a, s);
u.setSource(G({}, n), function(e, t) {
if (e)
return r(n, l, i, o, a, s);
a.push(u),
r(t, n.type === t.type ? l : pr[t.type], i, o, a, s)
})
} else
l.length ? r(n, l, i, o, a, s) : s ? i(n, a) : r(n, pr["*"], i, o, a, !0)
}(t, pr[t.type], r, e)
}, 1)
}
function mr(e, t, r) {
var n = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null
, i = "call" + mt(r)
, o = e.reduce(Tr(i), n)
, a = o === vr
, s = a ? null : t[r](o);
return function(e, t, r, n) {
for (var i = e.length - 1; 0 <= i; i--) {
var o = e[i];
o[t] && o[t](n, r)
}
}(e, r, s, a),
s
}
var _r = {
buffered: 1,
currentTime: 1,
duration: 1,
seekable: 1,
played: 1,
paused: 1
}
, gr = {
setCurrentTime: 1
}
, br = {
play: 1,
pause: 1
};
function Tr(r) {
return function(e, t) {
return e === vr ? vr : t[r] ? t[r](e) : e
}
}
function wr(e, t) {
var r = fr[e.id()]
, n = null;
if (null == r)
return n = t(e),
fr[e.id()] = [[t, n]],
n;
for (var i = 0; i < r.length; i++) {
var o = r[i]
, a = o[0]
, s = o[1];
a === t && (n = s)
}
return null === n && (n = t(e),
r.push([t, n])),
n
}
var kr = {
opus: "video/ogg",
ogv: "video/ogg",
mp4: "video/mp4",
mov: "video/mp4",
m4v: "video/mp4",
mkv: "video/x-matroska",
mp3: "audio/mpeg",
aac: "audio/aac",
oga: "audio/ogg",
m3u8: "application/x-mpegURL"
}
, Sr = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ""
, t = tr(e);
return kr[t.toLowerCase()] || ""
};
function Cr(e) {
var t = Sr(e.src);
return !e.type && t && (e.type = t),
e
}
var Er = function(u) {
function c(e, t, r) {
B(this, c);
var n = _t({
createEl: !1
}, t)
, i = q(this, u.call(this, e, n, r));
if (t.playerOptions.sources && 0 !== t.playerOptions.sources.length)
e.src(t.playerOptions.sources);
else
for (var o = 0, a = t.playerOptions.techOrder; o < a.length; o++) {
var s = mt(a[o])
, l = dr.getTech(s);
if (s || (l = gt.getComponent(s)),
l && l.isSupported()) {
e.loadTech_(s);
break
}
}
return i
}
return H(c, u),
c
}(gt);
gt.registerComponent("MediaLoader", Er);
var xr = function(i) {
function n(e, t) {
B(this, n);
var r = q(this, i.call(this, e, t));
return r.emitTapEvents(),
r.enable(),
r
}
return H(n, i),
n.prototype.createEl = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "div"
, t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}
, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
t = G({
innerHTML: '<span aria-hidden="true" class="vjs-icon-placeholder"></span>',
className: this.buildCSSClass(),
tabIndex: 0
}, t),
"button" === e && Z.error("Creating a ClickableComponent with an HTML element of " + e + " is not supported; use a Button instead."),
r = G({
role: "button"
}, r),
this.tabIndex_ = t.tabIndex;
var n = i.prototype.createEl.call(this, e, t, r);
return this.createControlTextEl(n),
n
}
,
n.prototype.dispose = function() {
this.controlTextEl_ = null,
i.prototype.dispose.call(this)
}
,
n.prototype.createControlTextEl = function(e) {
return this.controlTextEl_ = le("span", {
className: "vjs-control-text"
}, {
"aria-live": "polite"
}),
e && e.appendChild(this.controlTextEl_),
this.controlText(this.controlText_, e),
this.controlTextEl_
}
,
n.prototype.controlText = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : this.el();
if (void 0 === e)
return this.controlText_ || "Need Text";
var r = this.localize(e);
this.controlText_ = e,
ue(this.controlTextEl_, r),
this.nonIconControl || t.setAttribute("title", r)
}
,
n.prototype.buildCSSClass = function() {
return "vjs-control vjs-button " + i.prototype.buildCSSClass.call(this)
}
,
n.prototype.enable = function() {
this.enabled_ || (this.enabled_ = !0,
this.removeClass("vjs-disabled"),
this.el_.setAttribute("aria-disabled", "false"),
void 0 !== this.tabIndex_ && this.el_.setAttribute("tabIndex", this.tabIndex_),
this.on(["tap", "click"], this.handleClick),
this.on("focus", this.handleFocus),
this.on("blur", this.handleBlur))
}
,
n.prototype.disable = function() {
this.enabled_ = !1,
this.addClass("vjs-disabled"),
this.el_.setAttribute("aria-disabled", "true"),
void 0 !== this.tabIndex_ && this.el_.removeAttribute("tabIndex"),
this.off(["tap", "click"], this.handleClick),
this.off("focus", this.handleFocus),
this.off("blur", this.handleBlur)
}
,
n.prototype.handleClick = function(e) {}
,
n.prototype.handleFocus = function(e) {
Ge(f, "keydown", nt(this, this.handleKeyPress))
}
,
n.prototype.handleKeyPress = function(e) {
32 === e.which || 13 === e.which ? (e.preventDefault(),
this.trigger("click")) : i.prototype.handleKeyPress && i.prototype.handleKeyPress.call(this, e)
}
,
n.prototype.handleBlur = function(e) {
$e(f, "keydown", nt(this, this.handleKeyPress))
}
,
n
}(gt);
gt.registerComponent("ClickableComponent", xr);
var jr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.update(),
e.on("posterchange", nt(r, r.update)),
r
}
return H(i, n),
i.prototype.dispose = function() {
this.player().off("posterchange", this.update),
n.prototype.dispose.call(this)
}
,
i.prototype.createEl = function() {
var e = le("div", {
className: "vjs-poster",
tabIndex: -1
});
return N || (this.fallbackImg_ = le("img"),
e.appendChild(this.fallbackImg_)),
e
}
,
i.prototype.update = function(e) {
var t = this.player().poster();
this.setSrc(t),
t ? this.show() : this.hide()
}
,
i.prototype.setSrc = function(e) {
if (this.fallbackImg_)
this.fallbackImg_.src = e;
else {
var t = "";
e && (t = 'url("' + e + '")'),
this.el_.style.backgroundImage = t
}
}
,
i.prototype.handleClick = function(e) {
this.player_.controls() && (this.player_.paused() ? Dt(this.player_.play()) : this.player_.pause())
}
,
i
}(xr);
gt.registerComponent("PosterImage", jr);
var Pr = "#222"
, Or = {
monospace: "monospace",
sansSerif: "sans-serif",
serif: "serif",
monospaceSansSerif: '"Andale Mono", "Lucida Console", monospace',
monospaceSerif: '"Courier New", monospace',
proportionalSansSerif: "sans-serif",
proportionalSerif: "serif",
casual: '"Comic Sans MS", Impact, fantasy',
script: '"Monotype Corsiva", cursive',
smallcaps: '"Andale Mono", "Lucida Console", monospace, sans-serif'
};
function Ar(e, t) {
var r = void 0;
if (4 === e.length)
r = e[1] + e[1] + e[2] + e[2] + e[3] + e[3];
else {
if (7 !== e.length)
throw new Error("Invalid color code provided, " + e + "; must be formatted as e.g. #f0e or #f604e2.");
r = e.slice(1)
}
return "rgba(" + parseInt(r.slice(0, 2), 16) + "," + parseInt(r.slice(2, 4), 16) + "," + parseInt(r.slice(4, 6), 16) + "," + t + ")"
}
function Mr(e, t, r) {
try {
e.style[t] = r
} catch (e) {
return
}
}
var Dr = function(i) {
function o(r, e, t) {
B(this, o);
var n = q(this, i.call(this, r, e, t));
return r.on("loadstart", nt(n, n.toggleDisplay)),
r.on("texttrackchange", nt(n, n.updateDisplay)),
r.on("loadstart", nt(n, n.preselectTrack)),
r.ready(nt(n, function() {
if (r.tech_ && r.tech_.featuresNativeTextTracks)
this.hide();
else {
r.on("fullscreenchange", nt(this, this.updateDisplay));
for (var e = this.options_.playerOptions.tracks || [], t = 0; t < e.length; t++)
this.player_.addRemoteTextTrack(e[t], !0);
this.preselectTrack()
}
})),
n
}
return H(o, i),
o.prototype.preselectTrack = function() {
for (var e = {
captions: 1,
subtitles: 1
}, t = this.player_.textTracks(), r = this.player_.cache_.selectedLanguage, n = void 0, i = void 0, o = void 0, a = 0; a < t.length; a++) {
var s = t[a];
r && r.enabled && r.language === s.language ? s.kind === r.kind ? o = s : o || (o = s) : r && !r.enabled ? i = n = o = null : s.default && ("descriptions" !== s.kind || n ? s.kind in e && !i && (i = s) : n = s)
}
o ? o.mode = "showing" : i ? i.mode = "showing" : n && (n.mode = "showing")
}
,
o.prototype.toggleDisplay = function() {
this.player_.tech_ && this.player_.tech_.featuresNativeTextTracks ? this.hide() : this.show()
}
,
o.prototype.createEl = function() {
return i.prototype.createEl.call(this, "div", {
className: "vjs-text-track-display"
}, {
"aria-live": "off",
"aria-atomic": "true"
})
}
,
o.prototype.clearDisplay = function() {
"function" == typeof p.WebVTT && p.WebVTT.processCues(p, [], this.el_)
}
,
o.prototype.updateDisplay = function() {
var e = this.player_.textTracks();
this.clearDisplay();
for (var t = null, r = null, n = e.length; n--; ) {
var i = e[n];
"showing" === i.mode && ("descriptions" === i.kind ? t = i : r = i)
}
r ? ("off" !== this.getAttribute("aria-live") && this.setAttribute("aria-live", "off"),
this.updateForTrack(r)) : t && ("assertive" !== this.getAttribute("aria-live") && this.setAttribute("aria-live", "assertive"),
this.updateForTrack(t))
}
,
o.prototype.updateForTrack = function(e) {
if ("function" == typeof p.WebVTT && e.activeCues) {
for (var t = [], r = 0; r < e.activeCues.length; r++)
t.push(e.activeCues[r]);
if (p.WebVTT.processCues(p, t, this.el_),
this.player_.textTrackSettings)
for (var n = this.player_.textTrackSettings.getValues(), i = t.length; i--; ) {
var o = t[i];
if (o) {
var a = o.displayState;
if (n.color && (a.firstChild.style.color = n.color),
n.textOpacity && Mr(a.firstChild, "color", Ar(n.color || "#fff", n.textOpacity)),
n.backgroundColor && (a.firstChild.style.backgroundColor = n.backgroundColor),
n.backgroundOpacity && Mr(a.firstChild, "backgroundColor", Ar(n.backgroundColor || "#000", n.backgroundOpacity)),
n.windowColor && (n.windowOpacity ? Mr(a, "backgroundColor", Ar(n.windowColor, n.windowOpacity)) : a.style.backgroundColor = n.windowColor),
n.edgeStyle && ("dropshadow" === n.edgeStyle ? a.firstChild.style.textShadow = "2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px " + Pr : "raised" === n.edgeStyle ? a.firstChild.style.textShadow = "1px 1px #222, 2px 2px #222, 3px 3px " + Pr : "depressed" === n.edgeStyle ? a.firstChild.style.textShadow = "1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px " + Pr : "uniform" === n.edgeStyle && (a.firstChild.style.textShadow = "0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px " + Pr)),
n.fontPercent && 1 !== n.fontPercent) {
var s = p.parseFloat(a.style.fontSize);
a.style.fontSize = s * n.fontPercent + "px",
a.style.height = "auto",
a.style.top = "auto",
a.style.bottom = "2px"
}
n.fontFamily && "default" !== n.fontFamily && ("small-caps" === n.fontFamily ? a.firstChild.style.fontVariant = "small-caps" : a.firstChild.style.fontFamily = Or[n.fontFamily])
}
}
}
}
,
o
}(gt);
gt.registerComponent("TextTrackDisplay", Dr);
var Ir = function(i) {
function e() {
return B(this, e),
q(this, i.apply(this, arguments))
}
return H(e, i),
e.prototype.createEl = function() {
var e = this.player_.isAudio()
, t = this.localize(e ? "Audio Player" : "Video Player")
, r = le("span", {
className: "vjs-control-text",
innerHTML: this.localize("{1} is loading.", [t])
})
, n = i.prototype.createEl.call(this, "div", {
className: "vjs-loading-spinner",
dir: "ltr"
});
return n.appendChild(r),
n
}
,
e
}(gt);
gt.registerComponent("LoadingSpinner", Ir);
var Rr = function(t) {
function e() {
return B(this, e),
q(this, t.apply(this, arguments))
}
return H(e, t),
e.prototype.createEl = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}
, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
e = "button",
t = G({
innerHTML: '<span aria-hidden="true" class="vjs-icon-placeholder"></span>',
className: this.buildCSSClass()
}, t),
r = G({
type: "button"
}, r);
var n = gt.prototype.createEl.call(this, "button", t, r);
return this.createControlTextEl(n),
n
}
,
e.prototype.addChild = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}
, r = this.constructor.name;
return Z.warn("Adding an actionable (user controllable) child to a Button (" + r + ") is not supported; use a ClickableComponent instead."),
gt.prototype.addChild.call(this, e, t)
}
,
e.prototype.enable = function() {
t.prototype.enable.call(this),
this.el_.removeAttribute("disabled")
}
,
e.prototype.disable = function() {
t.prototype.disable.call(this),
this.el_.setAttribute("disabled", "disabled")
}
,
e.prototype.handleKeyPress = function(e) {
32 !== e.which && 13 !== e.which && t.prototype.handleKeyPress.call(this, e)
}
,
e
}(xr);
gt.registerComponent("Button", Rr);
var Nr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.mouseused_ = !1,
r.on("mousedown", r.handleMouseDown),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-big-play-button"
}
,
i.prototype.handleClick = function(e) {
var t = this.player_.play();
if (this.mouseused_ && e.clientX && e.clientY)
Dt(t);
else {
var r = this.player_.getChild("controlBar")
, n = r && r.getChild("playToggle");
if (n) {
var i = function() {
return n.focus()
};
Mt(t) ? t.then(i, function() {}) : this.setTimeout(i, 1)
} else
this.player_.focus()
}
}
,
i.prototype.handleKeyPress = function(e) {
this.mouseused_ = !1,
n.prototype.handleKeyPress.call(this, e)
}
,
i.prototype.handleMouseDown = function(e) {
this.mouseused_ = !0
}
,
i
}(Rr);
Nr.prototype.controlText_ = "Play Video",
gt.registerComponent("BigPlayButton", Nr);
var Lr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.controlText(t && t.controlText || r.localize("Close")),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-close-button " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.handleClick = function(e) {
this.trigger({
type: "close",
bubbles: !1
})
}
,
i
}(Rr);
gt.registerComponent("CloseButton", Lr);
var Fr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.on(e, "play", r.handlePlay),
r.on(e, "pause", r.handlePause),
r.on(e, "ended", r.handleEnded),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-play-control " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.handleClick = function(e) {
this.player_.paused() ? this.player_.play() : this.player_.pause()
}
,
i.prototype.handleSeeked = function(e) {
this.removeClass("vjs-ended"),
this.player_.paused() ? this.handlePause(e) : this.handlePlay(e)
}
,
i.prototype.handlePlay = function(e) {
this.removeClass("vjs-ended"),
this.removeClass("vjs-paused"),
this.addClass("vjs-playing"),
this.controlText("Pause")
}
,
i.prototype.handlePause = function(e) {
this.removeClass("vjs-playing"),
this.addClass("vjs-paused"),
this.controlText("Play")
}
,
i.prototype.handleEnded = function(e) {
this.removeClass("vjs-playing"),
this.addClass("vjs-ended"),
this.controlText("Replay"),
this.one(this.player_, "seeked", this.handleSeeked)
}
,
i
}(Rr);
Fr.prototype.controlText_ = "Play",
gt.registerComponent("PlayToggle", Fr);
var Br = function(e, t) {
e = e < 0 ? 0 : e;
var r = Math.floor(e % 60)
, n = Math.floor(e / 60 % 60)
, i = Math.floor(e / 3600)
, o = Math.floor(t / 60 % 60)
, a = Math.floor(t / 3600);
return (isNaN(e) || e === 1 / 0) && (i = n = r = "-"),
(i = 0 < i || 0 < a ? i + ":" : "") + (n = ((i || 10 <= o) && n < 10 ? "0" + n : n) + ":") + (r = r < 10 ? "0" + r : r)
}
, Hr = Br;
var qr = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : e;
return Hr(e, t)
}
, Vr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.throttledUpdateContent = it(nt(r, r.updateContent), 25),
r.on(e, "timeupdate", r.throttledUpdateContent),
r
}
return H(i, n),
i.prototype.createEl = function(e) {
var t = this.buildCSSClass()
, r = n.prototype.createEl.call(this, "div", {
className: t + " vjs-time-control vjs-control",
innerHTML: '<span class="vjs-control-text">' + this.localize(this.labelText_) + " </span>"
});
return this.contentEl_ = le("span", {
className: t + "-display"
}, {
"aria-live": "off"
}),
this.updateTextNode_(),
r.appendChild(this.contentEl_),
r
}
,
i.prototype.dispose = function() {
this.contentEl_ = null,
this.textNode_ = null,
n.prototype.dispose.call(this)
}
,
i.prototype.updateTextNode_ = function() {
if (this.contentEl_) {
for (; this.contentEl_.firstChild; )
this.contentEl_.removeChild(this.contentEl_.firstChild);
this.textNode_ = f.createTextNode(this.formattedTime_ || this.formatTime_(0)),
this.contentEl_.appendChild(this.textNode_)
}
}
,
i.prototype.formatTime_ = function(e) {
return qr(e)
}
,
i.prototype.updateFormattedTime_ = function(e) {
var t = this.formatTime_(e);
t !== this.formattedTime_ && (this.formattedTime_ = t,
this.requestAnimationFrame(this.updateTextNode_))
}
,
i.prototype.updateContent = function(e) {}
,
i
}(gt);
Vr.prototype.labelText_ = "Time",
Vr.prototype.controlText_ = "Time",
gt.registerComponent("TimeDisplay", Vr);
var Wr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.on(e, "ended", r.handleEnded),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-current-time"
}
,
i.prototype.updateContent = function(e) {
var t = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
this.updateFormattedTime_(t)
}
,
i.prototype.handleEnded = function(e) {
this.player_.duration() && this.updateFormattedTime_(this.player_.duration())
}
,
i
}(Vr);
Wr.prototype.labelText_ = "Current Time",
Wr.prototype.controlText_ = "Current Time",
gt.registerComponent("CurrentTimeDisplay", Wr);
var Ur = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.on(e, "durationchange", r.updateContent),
r.on(e, "loadedmetadata", r.throttledUpdateContent),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-duration"
}
,
i.prototype.updateContent = function(e) {
var t = this.player_.duration();
t && this.duration_ !== t && (this.duration_ = t,
this.updateFormattedTime_(t))
}
,
i
}(Vr);
Ur.prototype.labelText_ = "Duration",
Ur.prototype.controlText_ = "Duration",
gt.registerComponent("DurationDisplay", Ur);
var zr = function(e) {
function t() {
return B(this, t),
q(this, e.apply(this, arguments))
}
return H(t, e),
t.prototype.createEl = function() {
return e.prototype.createEl.call(this, "div", {
className: "vjs-time-control vjs-time-divider",
innerHTML: "<div><span>/</span></div>"
})
}
,
t
}(gt);
gt.registerComponent("TimeDivider", zr);
var Gr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.on(e, "durationchange", r.throttledUpdateContent),
r.on(e, "ended", r.handleEnded),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-remaining-time"
}
,
i.prototype.formatTime_ = function(e) {
return "-" + n.prototype.formatTime_.call(this, e)
}
,
i.prototype.updateContent = function(e) {
this.player_.duration() && (this.player_.remainingTimeDisplay ? this.updateFormattedTime_(this.player_.remainingTimeDisplay()) : this.updateFormattedTime_(this.player_.remainingTime()))
}
,
i.prototype.handleEnded = function(e) {
this.player_.duration() && this.updateFormattedTime_(0)
}
,
i
}(Vr);
Gr.prototype.labelText_ = "Remaining Time",
Gr.prototype.controlText_ = "Remaining Time",
gt.registerComponent("RemainingTimeDisplay", Gr);
var $r = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.updateShowing(),
r.on(r.player(), "durationchange", r.updateShowing),
r
}
return H(i, n),
i.prototype.createEl = function() {
var e = n.prototype.createEl.call(this, "div", {
className: "vjs-live-control vjs-control"
});
return this.contentEl_ = le("div", {
className: "vjs-live-display",
innerHTML: '<span class="vjs-control-text">' + this.localize("Stream Type") + " </span>" + this.localize("LIVE")
}, {
"aria-live": "off"
}),
e.appendChild(this.contentEl_),
e
}
,
i.prototype.dispose = function() {
this.contentEl_ = null,
n.prototype.dispose.call(this)
}
,
i.prototype.updateShowing = function(e) {
this.player().duration() === 1 / 0 ? this.show() : this.hide()
}
,
i
}(gt);
gt.registerComponent("LiveDisplay", $r);
var Kr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.bar = r.getChild(r.options_.barName),
r.vertical(!!r.options_.vertical),
r.enable(),
r
}
return H(i, n),
i.prototype.enabled = function() {
return this.enabled_
}
,
i.prototype.enable = function() {
this.enabled() || (this.on("mousedown", this.handleMouseDown),
this.on("touchstart", this.handleMouseDown),
this.on("focus", this.handleFocus),
this.on("blur", this.handleBlur),
this.on("click", this.handleClick),
this.on(this.player_, "controlsvisible", this.update),
this.playerEvent && this.on(this.player_, this.playerEvent, this.update),
this.removeClass("disabled"),
this.setAttribute("tabindex", 0),
this.enabled_ = !0)
}
,
i.prototype.disable = function() {
if (this.enabled()) {
var e = this.bar.el_.ownerDocument;
this.off("mousedown", this.handleMouseDown),
this.off("touchstart", this.handleMouseDown),
this.off("focus", this.handleFocus),
this.off("blur", this.handleBlur),
this.off("click", this.handleClick),
this.off(this.player_, "controlsvisible", this.update),
this.off(e, "mousemove", this.handleMouseMove),
this.off(e, "mouseup", this.handleMouseUp),
this.off(e, "touchmove", this.handleMouseMove),
this.off(e, "touchend", this.handleMouseUp),
this.removeAttribute("tabindex"),
this.addClass("disabled"),
this.playerEvent && this.off(this.player_, this.playerEvent, this.update),
this.enabled_ = !1
}
}
,
i.prototype.createEl = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}
, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
return t.className = t.className + " vjs-slider",
t = G({
tabIndex: 0
}, t),
r = G({
role: "slider",
"aria-valuenow": 0,
"aria-valuemin": 0,
"aria-valuemax": 100,
tabIndex: 0
}, r),
n.prototype.createEl.call(this, e, t, r)
}
,
i.prototype.handleMouseDown = function(e) {
var t = this.bar.el_.ownerDocument;
"mousedown" === e.type && e.preventDefault(),
"touchstart" !== e.type || P || e.preventDefault(),
be(),
this.addClass("vjs-sliding"),
this.trigger("slideractive"),
this.on(t, "mousemove", this.handleMouseMove),
this.on(t, "mouseup", this.handleMouseUp),
this.on(t, "touchmove", this.handleMouseMove),
this.on(t, "touchend", this.handleMouseUp),
this.handleMouseMove(e)
}
,
i.prototype.handleMouseMove = function(e) {}
,
i.prototype.handleMouseUp = function() {
var e = this.bar.el_.ownerDocument;
Te(),
this.removeClass("vjs-sliding"),
this.trigger("sliderinactive"),
this.off(e, "mousemove", this.handleMouseMove),
this.off(e, "mouseup", this.handleMouseUp),
this.off(e, "touchmove", this.handleMouseMove),
this.off(e, "touchend", this.handleMouseUp),
this.update()
}
,
i.prototype.update = function() {
if (this.el_) {
var e = this.getPercent()
, t = this.bar;
if (t) {
("number" != typeof e || e != e || e < 0 || e === 1 / 0) && (e = 0);
var r = (100 * e).toFixed(2) + "%"
, n = t.el().style;
return this.vertical() ? n.height = r : n.width = r,
e
}
}
}
,
i.prototype.calculateDistance = function(e) {
var t = Se(this.el_, e);
return this.vertical() ? t.y : t.x
}
,
i.prototype.handleFocus = function() {
this.on(this.bar.el_.ownerDocument, "keydown", this.handleKeyPress)
}
,
i.prototype.handleKeyPress = function(e) {
37 === e.which || 40 === e.which ? (e.preventDefault(),
this.stepBack()) : 38 !== e.which && 39 !== e.which || (e.preventDefault(),
this.stepForward())
}
,
i.prototype.handleBlur = function() {
this.off(this.bar.el_.ownerDocument, "keydown", this.handleKeyPress)
}
,
i.prototype.handleClick = function(e) {
e.stopImmediatePropagation(),
e.preventDefault()
}
,
i.prototype.vertical = function(e) {
if (void 0 === e)
return this.vertical_ || !1;
this.vertical_ = !!e,
this.vertical_ ? this.addClass("vjs-slider-vertical") : this.addClass("vjs-slider-horizontal")
}
,
i
}(gt);
gt.registerComponent("Slider", Kr);
var Xr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.partEls_ = [],
r.on(e, "progress", r.update),
r
}
return H(i, n),
i.prototype.createEl = function() {
return n.prototype.createEl.call(this, "div", {
className: "vjs-load-progress",
innerHTML: '<span class="vjs-control-text"><span>' + this.localize("Loaded") + "</span>: 0%</span>"
})
}
,
i.prototype.dispose = function() {
this.partEls_ = null,
n.prototype.dispose.call(this)
}
,
i.prototype.update = function(e) {
var t = this.player_.buffered()
, r = this.player_.duration()
, n = this.player_.bufferedEnd()
, i = this.partEls_
, o = function(e, t) {
var r = e / t || 0;
return 100 * (1 <= r ? 1 : r) + "%"
};
this.el_.style.width = o(n, r);
for (var a = 0; a < t.length; a++) {
var s = t.start(a)
, l = t.end(a)
, u = i[a];
u || (u = this.el_.appendChild(le()),
i[a] = u),
u.style.left = o(s, n),
u.style.width = o(l - s, n)
}
for (var c = i.length; c > t.length; c--)
this.el_.removeChild(i[c - 1]);
i.length = t.length
}
,
i
}(gt);
gt.registerComponent("LoadProgressBar", Xr);
var Jr = function(e) {
function t() {
return B(this, t),
q(this, e.apply(this, arguments))
}
return H(t, e),
t.prototype.createEl = function() {
return e.prototype.createEl.call(this, "div", {
className: "vjs-time-tooltip"
})
}
,
t.prototype.update = function(e, t, r) {
var n = we(this.el_)
, i = we(this.player_.el())
, o = e.width * t;
if (i && n) {
var a = e.left - i.left + o
, s = e.width - o + (i.right - e.right)
, l = n.width / 2;
a < l ? l += l - a : s < l && (l = s),
l < 0 ? l = 0 : l > n.width && (l = n.width),
this.el_.style.right = "-" + l + "px",
ue(this.el_, r)
}
}
,
t
}(gt);
gt.registerComponent("TimeTooltip", Jr);
var Qr = function(e) {
function t() {
return B(this, t),
q(this, e.apply(this, arguments))
}
return H(t, e),
t.prototype.createEl = function() {
return e.prototype.createEl.call(this, "div", {
className: "vjs-play-progress vjs-slider-bar",
innerHTML: '<span class="vjs-control-text"><span>' + this.localize("Progress") + "</span>: 0%</span>"
})
}
,
t.prototype.update = function(n, i) {
var o = this;
this.rafId_ && this.cancelAnimationFrame(this.rafId_),
this.rafId_ = this.requestAnimationFrame(function() {
var e = o.player_.scrubbing() ? o.player_.getCache().currentTime : o.player_.currentTime()
, t = qr(e, o.player_.duration())
, r = o.getChild("timeTooltip");
r && r.update(n, i, t)
})
}
,
t
}(gt);
Qr.prototype.options_ = {
children: []
},
M && !(8 < M) || T || k || Qr.prototype.options_.children.push("timeTooltip"),
gt.registerComponent("PlayProgressBar", Qr);
var Yr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.update = it(nt(r, r.update), 25),
r
}
return H(i, n),
i.prototype.createEl = function() {
return n.prototype.createEl.call(this, "div", {
className: "vjs-mouse-display"
})
}
,
i.prototype.update = function(r, n) {
var i = this;
this.rafId_ && this.cancelAnimationFrame(this.rafId_),
this.rafId_ = this.requestAnimationFrame(function() {
var e = i.player_.duration()
, t = qr(n * e, e);
i.el_.style.left = r.width * n + "px",
i.getChild("timeTooltip").update(r, n, t)
})
}
,
i
}(gt);
Yr.prototype.options_ = {
children: ["timeTooltip"]
},
gt.registerComponent("MouseTimeDisplay", Yr);
var Zr = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.setEventHandlers_(),
r
}
return H(i, n),
i.prototype.setEventHandlers_ = function() {
var e = this;
this.update = it(nt(this, this.update), 30),
this.on(this.player_, "timeupdate", this.update),
this.on(this.player_, "ended", this.handleEnded),
this.updateInterval = null,
this.on(this.player_, ["playing"], function() {
e.clearInterval(e.updateInterval),
e.updateInterval = e.setInterval(function() {
e.requestAnimationFrame(function() {
e.update()
})
}, 30)
}),
this.on(this.player_, ["ended", "pause", "waiting"], function() {
e.clearInterval(e.updateInterval)
}),
this.on(this.player_, ["timeupdate", "ended"], this.update)
}
,
i.prototype.createEl = function() {
return n.prototype.createEl.call(this, "div", {
className: "vjs-progress-holder"
}, {
"aria-label": this.localize("Progress Bar")
})
}
,
i.prototype.update_ = function(e, t) {
var r = this.player_.duration();
this.el_.setAttribute("aria-valuenow", (100 * t).toFixed(2)),
this.el_.setAttribute("aria-valuetext", this.localize("progress bar timing: currentTime={1} duration={2}", [qr(e, r), qr(r, r)], "{1} of {2}")),
this.bar.update(we(this.el_), t)
}
,
i.prototype.update = function(e) {
var t = n.prototype.update.call(this);
return this.update_(this.getCurrentTime_(), t),
t
}
,
i.prototype.getCurrentTime_ = function() {
return this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime()
}
,
i.prototype.handleEnded = function(e) {
this.update_(this.player_.duration(), 1)
}
,
i.prototype.getPercent = function() {
var e = this.getCurrentTime_() / this.player_.duration();
return 1 <= e ? 1 : e
}
,
i.prototype.handleMouseDown = function(e) {
Oe(e) && (e.stopPropagation(),
this.player_.scrubbing(!0),
this.videoWasPlaying = !this.player_.paused(),
this.player_.pause(),
n.prototype.handleMouseDown.call(this, e))
}
,
i.prototype.handleMouseMove = function(e) {
if (Oe(e)) {
var t = this.calculateDistance(e) * this.player_.duration();
t === this.player_.duration() && (t -= .1),
this.player_.currentTime(t)
}
}
,
i.prototype.enable = function() {
n.prototype.enable.call(this);
var e = this.getChild("mouseTimeDisplay");
e && e.show()
}
,
i.prototype.disable = function() {
n.prototype.disable.call(this);
var e = this.getChild("mouseTimeDisplay");
e && e.hide()
}
,
i.prototype.handleMouseUp = function(e) {
n.prototype.handleMouseUp.call(this, e),
e && e.stopPropagation(),
this.player_.scrubbing(!1),
this.player_.trigger({
type: "timeupdate",
target: this,
manuallyTriggered: !0
}),
this.videoWasPlaying && Dt(this.player_.play())
}
,
i.prototype.stepForward = function() {
this.player_.currentTime(this.player_.currentTime() + 5)
}
,
i.prototype.stepBack = function() {
this.player_.currentTime(this.player_.currentTime() - 5)
}
,
i.prototype.handleAction = function(e) {
this.player_.paused() ? this.player_.play() : this.player_.pause()
}
,
i.prototype.handleKeyPress = function(e) {
32 === e.which || 13 === e.which ? (e.preventDefault(),
this.handleAction(e)) : n.prototype.handleKeyPress && n.prototype.handleKeyPress.call(this, e)
}
,
i
}(Kr);
Zr.prototype.options_ = {
children: ["loadProgressBar", "playProgressBar"],
barName: "playProgressBar"
},
M && !(8 < M) || T || k || Zr.prototype.options_.children.splice(1, 0, "mouseTimeDisplay"),
Zr.prototype.playerEvent = "timeupdate",
gt.registerComponent("SeekBar", Zr);
var en = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.handleMouseMove = it(nt(r, r.handleMouseMove), 25),
r.throttledHandleMouseSeek = it(nt(r, r.handleMouseSeek), 25),
r.enable(),
r
}
return H(i, n),
i.prototype.createEl = function() {
return n.prototype.createEl.call(this, "div", {
className: "vjs-progress-control vjs-control"
})
}
,
i.prototype.handleMouseMove = function(e) {
var t = this.getChild("seekBar");
if (t) {
var r = t.getChild("mouseTimeDisplay")
, n = t.el()
, i = we(n)
, o = Se(n, e).x;
1 < o ? o = 1 : o < 0 && (o = 0),
r && r.update(i, o)
}
}
,
i.prototype.handleMouseSeek = function(e) {
var t = this.getChild("seekBar");
t && t.handleMouseMove(e)
}
,
i.prototype.enabled = function() {
return this.enabled_
}
,
i.prototype.disable = function() {
this.children().forEach(function(e) {
return e.disable && e.disable()
}),
this.enabled() && (this.off(["mousedown", "touchstart"], this.handleMouseDown),
this.off(this.el_, "mousemove", this.handleMouseMove),
this.handleMouseUp(),
this.addClass("disabled"),
this.enabled_ = !1)
}
,
i.prototype.enable = function() {
this.children().forEach(function(e) {
return e.enable && e.enable()
}),
this.enabled() || (this.on(["mousedown", "touchstart"], this.handleMouseDown),
this.on(this.el_, "mousemove", this.handleMouseMove),
this.removeClass("disabled"),
this.enabled_ = !0)
}
,
i.prototype.handleMouseDown = function(e) {
var t = this.el_.ownerDocument
, r = this.getChild("seekBar");
r && r.handleMouseDown(e),
this.on(t, "mousemove", this.throttledHandleMouseSeek),
this.on(t, "touchmove", this.throttledHandleMouseSeek),
this.on(t, "mouseup", this.handleMouseUp),
this.on(t, "touchend", this.handleMouseUp)
}
,
i.prototype.handleMouseUp = function(e) {
var t = this.el_.ownerDocument
, r = this.getChild("seekBar");
r && r.handleMouseUp(e),
this.off(t, "mousemove", this.throttledHandleMouseSeek),
this.off(t, "touchmove", this.throttledHandleMouseSeek),
this.off(t, "mouseup", this.handleMouseUp),
this.off(t, "touchend", this.handleMouseUp)
}
,
i
}(gt);
en.prototype.options_ = {
children: ["seekBar"]
},
gt.registerComponent("ProgressControl", en);
var tn = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.on(e, "fullscreenchange", r.handleFullscreenChange),
!1 === f[St.fullscreenEnabled] && r.disable(),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-fullscreen-control " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.handleFullscreenChange = function(e) {
this.player_.isFullscreen() ? this.controlText("Non-Fullscreen") : this.controlText("Fullscreen")
}
,
i.prototype.handleClick = function(e) {
this.player_.isFullscreen() ? this.player_.exitFullscreen() : this.player_.requestFullscreen()
}
,
i
}(Rr);
tn.prototype.controlText_ = "Fullscreen",
gt.registerComponent("FullscreenToggle", tn);
var rn = function(e) {
function t() {
return B(this, t),
q(this, e.apply(this, arguments))
}
return H(t, e),
t.prototype.createEl = function() {
return e.prototype.createEl.call(this, "div", {
className: "vjs-volume-level",
innerHTML: '<span class="vjs-control-text"></span>'
})
}
,
t
}(gt);
gt.registerComponent("VolumeLevel", rn);
var nn = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.on("slideractive", r.updateLastVolume_),
r.on(e, "volumechange", r.updateARIAAttributes),
e.ready(function() {
return r.updateARIAAttributes()
}),
r
}
return H(i, n),
i.prototype.createEl = function() {
return n.prototype.createEl.call(this, "div", {
className: "vjs-volume-bar vjs-slider-bar"
}, {
"aria-label": this.localize("Volume Level"),
"aria-live": "polite"
})
}
,
i.prototype.handleMouseDown = function(e) {
Oe(e) && n.prototype.handleMouseDown.call(this, e)
}
,
i.prototype.handleMouseMove = function(e) {
Oe(e) && (this.checkMuted(),
this.player_.volume(this.calculateDistance(e)))
}
,
i.prototype.checkMuted = function() {
this.player_.muted() && this.player_.muted(!1)
}
,
i.prototype.getPercent = function() {
return this.player_.muted() ? 0 : this.player_.volume()
}
,
i.prototype.stepForward = function() {
this.checkMuted(),
this.player_.volume(this.player_.volume() + .1)
}
,
i.prototype.stepBack = function() {
this.checkMuted(),
this.player_.volume(this.player_.volume() - .1)
}
,
i.prototype.updateARIAAttributes = function(e) {
var t = this.player_.muted() ? 0 : this.volumeAsPercentage_();
this.el_.setAttribute("aria-valuenow", t),
this.el_.setAttribute("aria-valuetext", t + "%")
}
,
i.prototype.volumeAsPercentage_ = function() {
return Math.round(100 * this.player_.volume())
}
,
i.prototype.updateLastVolume_ = function() {
var e = this
, t = this.player_.volume();
this.one("sliderinactive", function() {
0 === e.player_.volume() && e.player_.lastVolume_(t)
})
}
,
i
}(Kr);
nn.prototype.options_ = {
children: ["volumeLevel"],
barName: "volumeLevel"
},
nn.prototype.playerEvent = "volumechange",
gt.registerComponent("VolumeBar", nn);
var on = function(o) {
function a(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
B(this, a),
t.vertical = t.vertical || !1,
(void 0 === t.volumeBar || K(t.volumeBar)) && (t.volumeBar = t.volumeBar || {},
t.volumeBar.vertical = t.vertical);
var r, n, i = q(this, o.call(this, e, t));
return r = i,
(n = e).tech_ && !n.tech_.featuresVolumeControl && r.addClass("vjs-hidden"),
r.on(n, "loadstart", function() {
n.tech_.featuresVolumeControl ? r.removeClass("vjs-hidden") : r.addClass("vjs-hidden")
}),
i.throttledHandleMouseMove = it(nt(i, i.handleMouseMove), 25),
i.on("mousedown", i.handleMouseDown),
i.on("touchstart", i.handleMouseDown),
i.on(i.volumeBar, ["focus", "slideractive"], function() {
i.volumeBar.addClass("vjs-slider-active"),
i.addClass("vjs-slider-active"),
i.trigger("slideractive")
}),
i.on(i.volumeBar, ["blur", "sliderinactive"], function() {
i.volumeBar.removeClass("vjs-slider-active"),
i.removeClass("vjs-slider-active"),
i.trigger("sliderinactive")
}),
i
}
return H(a, o),
a.prototype.createEl = function() {
var e = "vjs-volume-horizontal";
return this.options_.vertical && (e = "vjs-volume-vertical"),
o.prototype.createEl.call(this, "div", {
className: "vjs-volume-control vjs-control " + e
})
}
,
a.prototype.handleMouseDown = function(e) {
var t = this.el_.ownerDocument;
this.on(t, "mousemove", this.throttledHandleMouseMove),
this.on(t, "touchmove", this.throttledHandleMouseMove),
this.on(t, "mouseup", this.handleMouseUp),
this.on(t, "touchend", this.handleMouseUp)
}
,
a.prototype.handleMouseUp = function(e) {
var t = this.el_.ownerDocument;
this.off(t, "mousemove", this.throttledHandleMouseMove),
this.off(t, "touchmove", this.throttledHandleMouseMove),
this.off(t, "mouseup", this.handleMouseUp),
this.off(t, "touchend", this.handleMouseUp)
}
,
a.prototype.handleMouseMove = function(e) {
this.volumeBar.handleMouseMove(e)
}
,
a
}(gt);
on.prototype.options_ = {
children: ["volumeBar"]
},
gt.registerComponent("VolumeControl", on);
var an = function(o) {
function a(e, t) {
B(this, a);
var r, n, i = q(this, o.call(this, e, t));
return r = i,
(n = e).tech_ && !n.tech_.featuresMuteControl && r.addClass("vjs-hidden"),
r.on(n, "loadstart", function() {
n.tech_.featuresMuteControl ? r.removeClass("vjs-hidden") : r.addClass("vjs-hidden")
}),
i.on(e, ["loadstart", "volumechange"], i.update),
i
}
return H(a, o),
a.prototype.buildCSSClass = function() {
return "vjs-mute-control " + o.prototype.buildCSSClass.call(this)
}
,
a.prototype.handleClick = function(e) {
var t = this.player_.volume()
, r = this.player_.lastVolume_();
if (0 === t) {
var n = r < .1 ? .1 : r;
this.player_.volume(n),
this.player_.muted(!1)
} else
this.player_.muted(!this.player_.muted())
}
,
a.prototype.update = function(e) {
this.updateIcon_(),
this.updateControlText_()
}
,
a.prototype.updateIcon_ = function() {
var e = this.player_.volume()
, t = 3;
T && this.player_.muted(this.player_.tech_.el_.muted),
0 === e || this.player_.muted() ? t = 0 : e < .33 ? t = 1 : e < .67 && (t = 2);
for (var r = 0; r < 4; r++)
pe(this.el_, "vjs-vol-" + r);
de(this.el_, "vjs-vol-" + t)
}
,
a.prototype.updateControlText_ = function() {
var e = this.player_.muted() || 0 === this.player_.volume() ? "Unmute" : "Mute";
this.controlText() !== e && this.controlText(e)
}
,
a
}(Rr);
an.prototype.controlText_ = "Mute",
gt.registerComponent("MuteToggle", an);
var sn = function(n) {
function i(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
B(this, i),
void 0 !== t.inline ? t.inline = t.inline : t.inline = !0,
(void 0 === t.volumeControl || K(t.volumeControl)) && (t.volumeControl = t.volumeControl || {},
t.volumeControl.vertical = !t.inline);
var r = q(this, n.call(this, e, t));
return r.on(e, ["loadstart"], r.volumePanelState_),
r.on(r.volumeControl, ["slideractive"], r.sliderActive_),
r.on(r.volumeControl, ["sliderinactive"], r.sliderInactive_),
r
}
return H(i, n),
i.prototype.sliderActive_ = function() {
this.addClass("vjs-slider-active")
}
,
i.prototype.sliderInactive_ = function() {
this.removeClass("vjs-slider-active")
}
,
i.prototype.volumePanelState_ = function() {
this.volumeControl.hasClass("vjs-hidden") && this.muteToggle.hasClass("vjs-hidden") && this.addClass("vjs-hidden"),
this.volumeControl.hasClass("vjs-hidden") && !this.muteToggle.hasClass("vjs-hidden") && this.addClass("vjs-mute-toggle-only")
}
,
i.prototype.createEl = function() {
var e = "vjs-volume-panel-horizontal";
return this.options_.inline || (e = "vjs-volume-panel-vertical"),
n.prototype.createEl.call(this, "div", {
className: "vjs-volume-panel vjs-control " + e
})
}
,
i
}(gt);
sn.prototype.options_ = {
children: ["muteToggle", "volumeControl"]
},
gt.registerComponent("VolumePanel", sn);
var ln = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return t && (r.menuButton_ = t.menuButton),
r.focusedChild_ = -1,
r.on("keydown", r.handleKeyPress),
r
}
return H(i, n),
i.prototype.addItem = function(t) {
this.addChild(t),
t.on("click", nt(this, function(e) {
this.menuButton_ && (this.menuButton_.unpressButton(),
"CaptionSettingsMenuItem" !== t.name() && this.menuButton_.focus())
}))
}
,
i.prototype.createEl = function() {
var e = this.options_.contentElType || "ul";
this.contentEl_ = le(e, {
className: "vjs-menu-content"
}),
this.contentEl_.setAttribute("role", "menu");
var t = n.prototype.createEl.call(this, "div", {
append: this.contentEl_,
className: "vjs-menu"
});
return t.appendChild(this.contentEl_),
Ge(t, "click", function(e) {
e.preventDefault(),
e.stopImmediatePropagation()
}),
t
}
,
i.prototype.dispose = function() {
this.contentEl_ = null,
n.prototype.dispose.call(this)
}
,
i.prototype.handleKeyPress = function(e) {
37 === e.which || 40 === e.which ? (e.preventDefault(),
this.stepForward()) : 38 !== e.which && 39 !== e.which || (e.preventDefault(),
this.stepBack())
}
,
i.prototype.stepForward = function() {
var e = 0;
void 0 !== this.focusedChild_ && (e = this.focusedChild_ + 1),
this.focus(e)
}
,
i.prototype.stepBack = function() {
var e = 0;
void 0 !== this.focusedChild_ && (e = this.focusedChild_ - 1),
this.focus(e)
}
,
i.prototype.focus = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0
, t = this.children().slice();
t.length && t[0].className && /vjs-menu-title/.test(t[0].className) && t.shift(),
0 < t.length && (e < 0 ? e = 0 : e >= t.length && (e = t.length - 1),
t[this.focusedChild_ = e].el_.focus())
}
,
i
}(gt);
gt.registerComponent("Menu", ln);
var un = function(i) {
function o(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
B(this, o);
var r = q(this, i.call(this, e, t));
r.menuButton_ = new Rr(e,t),
r.menuButton_.controlText(r.controlText_),
r.menuButton_.el_.setAttribute("aria-haspopup", "true");
var n = Rr.prototype.buildCSSClass();
return r.menuButton_.el_.className = r.buildCSSClass() + " " + n,
r.menuButton_.removeClass("vjs-control"),
r.addChild(r.menuButton_),
r.update(),
r.enabled_ = !0,
r.on(r.menuButton_, "tap", r.handleClick),
r.on(r.menuButton_, "click", r.handleClick),
r.on(r.menuButton_, "focus", r.handleFocus),
r.on(r.menuButton_, "blur", r.handleBlur),
r.on("keydown", r.handleSubmenuKeyPress),
r
}
return H(o, i),
o.prototype.update = function() {
var e = this.createMenu();
this.menu && (this.menu.dispose(),
this.removeChild(this.menu)),
this.menu = e,
this.addChild(e),
this.buttonPressed_ = !1,
this.menuButton_.el_.setAttribute("aria-expanded", "false"),
this.items && this.items.length <= this.hideThreshold_ ? this.hide() : this.show()
}
,
o.prototype.createMenu = function() {
var e = new ln(this.player_,{
menuButton: this
});
if (this.hideThreshold_ = 0,
this.options_.title) {
var t = le("li", {
className: "vjs-menu-title",
innerHTML: mt(this.options_.title),
tabIndex: -1
});
this.hideThreshold_ += 1,
e.children_.unshift(t),
ce(t, e.contentEl())
}
if (this.items = this.createItems(),
this.items)
for (var r = 0; r < this.items.length; r++)
e.addItem(this.items[r]);
return e
}
,
o.prototype.createItems = function() {}
,
o.prototype.createEl = function() {
return i.prototype.createEl.call(this, "div", {
className: this.buildWrapperCSSClass()
}, {})
}
,
o.prototype.buildWrapperCSSClass = function() {
var e = "vjs-menu-button";
return !0 === this.options_.inline ? e += "-inline" : e += "-popup",
"vjs-menu-button " + e + " " + Rr.prototype.buildCSSClass() + " " + i.prototype.buildCSSClass.call(this)
}
,
o.prototype.buildCSSClass = function() {
var e = "vjs-menu-button";
return !0 === this.options_.inline ? e += "-inline" : e += "-popup",
"vjs-menu-button " + e + " " + i.prototype.buildCSSClass.call(this)
}
,
o.prototype.controlText = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : this.menuButton_.el();
return this.menuButton_.controlText(e, t)
}
,
o.prototype.handleClick = function(e) {
this.one(this.menu.contentEl(), "mouseleave", nt(this, function(e) {
this.unpressButton(),
this.el_.blur()
})),
this.buttonPressed_ ? this.unpressButton() : this.pressButton()
}
,
o.prototype.focus = function() {
this.menuButton_.focus()
}
,
o.prototype.blur = function() {
this.menuButton_.blur()
}
,
o.prototype.handleFocus = function() {
Ge(f, "keydown", nt(this, this.handleKeyPress))
}
,
o.prototype.handleBlur = function() {
$e(f, "keydown", nt(this, this.handleKeyPress))
}
,
o.prototype.handleKeyPress = function(e) {
27 === e.which || 9 === e.which ? (this.buttonPressed_ && this.unpressButton(),
9 !== e.which && (e.preventDefault(),
this.menuButton_.el_.focus())) : 38 !== e.which && 40 !== e.which || this.buttonPressed_ || (this.pressButton(),
e.preventDefault())
}
,
o.prototype.handleSubmenuKeyPress = function(e) {
27 !== e.which && 9 !== e.which || (this.buttonPressed_ && this.unpressButton(),
9 !== e.which && (e.preventDefault(),
this.menuButton_.el_.focus()))
}
,
o.prototype.pressButton = function() {
if (this.enabled_) {
if (this.buttonPressed_ = !0,
this.menu.lockShowing(),
this.menuButton_.el_.setAttribute("aria-expanded", "true"),
T && ae())
return;
this.menu.focus()
}
}
,
o.prototype.unpressButton = function() {
this.enabled_ && (this.buttonPressed_ = !1,
this.menu.unlockShowing(),
this.menuButton_.el_.setAttribute("aria-expanded", "false"))
}
,
o.prototype.disable = function() {
this.unpressButton(),
this.enabled_ = !1,
this.addClass("vjs-disabled"),
this.menuButton_.disable()
}
,
o.prototype.enable = function() {
this.enabled_ = !0,
this.removeClass("vjs-disabled"),
this.menuButton_.enable()
}
,
o
}(gt);
gt.registerComponent("MenuButton", un);
var cn = function(o) {
function a(e, t) {
B(this, a);
var r = t.tracks
, n = q(this, o.call(this, e, t));
if (n.items.length <= 1 && n.hide(),
!r)
return q(n);
var i = nt(n, n.update);
return r.addEventListener("removetrack", i),
r.addEventListener("addtrack", i),
n.player_.on("ready", i),
n.player_.on("dispose", function() {
r.removeEventListener("removetrack", i),
r.removeEventListener("addtrack", i)
}),
n
}
return H(a, o),
a
}(un);
gt.registerComponent("TrackButton", cn);
var hn = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.selectable = t.selectable,
r.isSelected_ = t.selected || !1,
r.multiSelectable = t.multiSelectable,
r.selected(r.isSelected_),
r.selectable ? r.multiSelectable ? r.el_.setAttribute("role", "menuitemcheckbox") : r.el_.setAttribute("role", "menuitemradio") : r.el_.setAttribute("role", "menuitem"),
r
}
return H(i, n),
i.prototype.createEl = function(e, t, r) {
return this.nonIconControl = !0,
n.prototype.createEl.call(this, "li", G({
className: "vjs-menu-item",
innerHTML: '<span class="vjs-menu-item-text">' + this.localize(this.options_.label) + "</span>",
tabIndex: -1
}, t), r)
}
,
i.prototype.handleClick = function(e) {
this.selected(!0)
}
,
i.prototype.selected = function(e) {
this.selectable && (this.isSelected_ = e ? (this.addClass("vjs-selected"),
this.el_.setAttribute("aria-checked", "true"),
this.controlText(", selected"),
!0) : (this.removeClass("vjs-selected"),
this.el_.setAttribute("aria-checked", "false"),
this.controlText(""),
!1))
}
,
i
}(xr);
gt.registerComponent("MenuItem", hn);
var dn = function(l) {
function u(e, t) {
B(this, u);
var r = t.track
, n = e.textTracks();
t.label = r.label || r.language || "Unknown",
t.selected = "showing" === r.mode;
var i = q(this, l.call(this, e, t));
i.track = r;
var o = function() {
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
i.handleTracksChange.apply(i, t)
}
, a = function() {
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
i.handleSelectedLanguageChange.apply(i, t)
};
if (e.on(["loadstart", "texttrackchange"], o),
n.addEventListener("change", o),
n.addEventListener("selectedlanguagechange", a),
i.on("dispose", function() {
e.off(["loadstart", "texttrackchange"], o),
n.removeEventListener("change", o),
n.removeEventListener("selectedlanguagechange", a)
}),
void 0 === n.onchange) {
var s = void 0;
i.on(["tap", "click"], function() {
if ("object" !== F(p.Event))
try {
s = new p.Event("change")
} catch (e) {}
s || (s = f.createEvent("Event")).initEvent("change", !0, !0),
n.dispatchEvent(s)
})
}
return i.handleTracksChange(),
i
}
return H(u, l),
u.prototype.handleClick = function(e) {
var t = this.track.kind
, r = this.track.kinds
, n = this.player_.textTracks();
if (r || (r = [t]),
l.prototype.handleClick.call(this, e),
n)
for (var i = 0; i < n.length; i++) {
var o = n[i];
o === this.track && -1 < r.indexOf(o.kind) ? "showing" !== o.mode && (o.mode = "showing") : "disabled" !== o.mode && (o.mode = "disabled")
}
}
,
u.prototype.handleTracksChange = function(e) {
var t = "showing" === this.track.mode;
t !== this.isSelected_ && this.selected(t)
}
,
u.prototype.handleSelectedLanguageChange = function(e) {
if ("showing" === this.track.mode) {
var t = this.player_.cache_.selectedLanguage;
if (t && t.enabled && t.language === this.track.language && t.kind !== this.track.kind)
return;
this.player_.cache_.selectedLanguage = {
enabled: !0,
language: this.track.language,
kind: this.track.kind
}
}
}
,
u.prototype.dispose = function() {
this.track = null,
l.prototype.dispose.call(this)
}
,
u
}(hn);
gt.registerComponent("TextTrackMenuItem", dn);
var pn = function(r) {
function n(e, t) {
return B(this, n),
t.track = {
player: e,
kind: t.kind,
kinds: t.kinds,
default: !1,
mode: "disabled"
},
t.kinds || (t.kinds = [t.kind]),
t.label ? t.track.label = t.label : t.track.label = t.kinds.join(" and ") + " off",
t.selectable = !0,
t.multiSelectable = !1,
q(this, r.call(this, e, t))
}
return H(n, r),
n.prototype.handleTracksChange = function(e) {
for (var t = this.player().textTracks(), r = !0, n = 0, i = t.length; n < i; n++) {
var o = t[n];
if (-1 < this.options_.kinds.indexOf(o.kind) && "showing" === o.mode) {
r = !1;
break
}
}
r !== this.isSelected_ && this.selected(r)
}
,
n.prototype.handleSelectedLanguageChange = function(e) {
for (var t = this.player().textTracks(), r = !0, n = 0, i = t.length; n < i; n++) {
var o = t[n];
if (-1 < ["captions", "descriptions", "subtitles"].indexOf(o.kind) && "showing" === o.mode) {
r = !1;
break
}
}
r && (this.player_.cache_.selectedLanguage = {
enabled: !1
})
}
,
n
}(dn);
gt.registerComponent("OffTextTrackMenuItem", pn);
var fn = function(r) {
function n(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
return B(this, n),
t.tracks = e.textTracks(),
q(this, r.call(this, e, t))
}
return H(n, r),
n.prototype.createItems = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : []
, t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : dn
, r = void 0;
this.label_ && (r = this.label_ + " off"),
e.push(new pn(this.player_,{
kinds: this.kinds_,
kind: this.kind_,
label: r
})),
this.hideThreshold_ += 1;
var n = this.player_.textTracks();
Array.isArray(this.kinds_) || (this.kinds_ = [this.kind_]);
for (var i = 0; i < n.length; i++) {
var o = n[i];
if (-1 < this.kinds_.indexOf(o.kind)) {
var a = new t(this.player_,{
track: o,
selectable: !0,
multiSelectable: !1
});
a.addClass("vjs-" + o.kind + "-menu-item"),
e.push(a)
}
}
return e
}
,
n
}(cn);
gt.registerComponent("TextTrackButton", fn);
var vn = function(a) {
function s(e, t) {
B(this, s);
var r = t.track
, n = t.cue
, i = e.currentTime();
t.selectable = !0,
t.multiSelectable = !1,
t.label = n.text,
t.selected = n.startTime <= i && i < n.endTime;
var o = q(this, a.call(this, e, t));
return o.track = r,
o.cue = n,
r.addEventListener("cuechange", nt(o, o.update)),
o
}
return H(s, a),
s.prototype.handleClick = function(e) {
a.prototype.handleClick.call(this),
this.player_.currentTime(this.cue.startTime),
this.update(this.cue.startTime)
}
,
s.prototype.update = function(e) {
var t = this.cue
, r = this.player_.currentTime();
this.selected(t.startTime <= r && r < t.endTime)
}
,
s
}(hn);
gt.registerComponent("ChaptersTrackMenuItem", vn);
var yn = function(n) {
function i(e, t, r) {
return B(this, i),
q(this, n.call(this, e, t, r))
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-chapters-button " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.buildWrapperCSSClass = function() {
return "vjs-chapters-button " + n.prototype.buildWrapperCSSClass.call(this)
}
,
i.prototype.update = function(e) {
this.track_ && (!e || "addtrack" !== e.type && "removetrack" !== e.type) || this.setTrack(this.findChaptersTrack()),
n.prototype.update.call(this)
}
,
i.prototype.setTrack = function(e) {
if (this.track_ !== e) {
if (this.updateHandler_ || (this.updateHandler_ = this.update.bind(this)),
this.track_) {
var t = this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);
t && t.removeEventListener("load", this.updateHandler_),
this.track_ = null
}
if (this.track_ = e,
this.track_) {
this.track_.mode = "hidden";
var r = this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);
r && r.addEventListener("load", this.updateHandler_)
}
}
}
,
i.prototype.findChaptersTrack = function() {
for (var e = this.player_.textTracks() || [], t = e.length - 1; 0 <= t; t--) {
var r = e[t];
if (r.kind === this.kind_)
return r
}
}
,
i.prototype.getMenuCaption = function() {
return this.track_ && this.track_.label ? this.track_.label : this.localize(mt(this.kind_))
}
,
i.prototype.createMenu = function() {
return this.options_.title = this.getMenuCaption(),
n.prototype.createMenu.call(this)
}
,
i.prototype.createItems = function() {
var e = [];
if (!this.track_)
return e;
var t = this.track_.cues;
if (!t)
return e;
for (var r = 0, n = t.length; r < n; r++) {
var i = t[r]
, o = new vn(this.player_,{
track: this.track_,
cue: i
});
e.push(o)
}
return e
}
,
i
}(fn);
yn.prototype.kind_ = "chapters",
yn.prototype.controlText_ = "Chapters",
gt.registerComponent("ChaptersButton", yn);
var mn = function(a) {
function s(e, t, r) {
B(this, s);
var n = q(this, a.call(this, e, t, r))
, i = e.textTracks()
, o = nt(n, n.handleTracksChange);
return i.addEventListener("change", o),
n.on("dispose", function() {
i.removeEventListener("change", o)
}),
n
}
return H(s, a),
s.prototype.handleTracksChange = function(e) {
for (var t = this.player().textTracks(), r = !1, n = 0, i = t.length; n < i; n++) {
var o = t[n];
if (o.kind !== this.kind_ && "showing" === o.mode) {
r = !0;
break
}
}
r ? this.disable() : this.enable()
}
,
s.prototype.buildCSSClass = function() {
return "vjs-descriptions-button " + a.prototype.buildCSSClass.call(this)
}
,
s.prototype.buildWrapperCSSClass = function() {
return "vjs-descriptions-button " + a.prototype.buildWrapperCSSClass.call(this)
}
,
s
}(fn);
mn.prototype.kind_ = "descriptions",
mn.prototype.controlText_ = "Descriptions",
gt.registerComponent("DescriptionsButton", mn);
var _n = function(n) {
function i(e, t, r) {
return B(this, i),
q(this, n.call(this, e, t, r))
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-subtitles-button " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.buildWrapperCSSClass = function() {
return "vjs-subtitles-button " + n.prototype.buildWrapperCSSClass.call(this)
}
,
i
}(fn);
_n.prototype.kind_ = "subtitles",
_n.prototype.controlText_ = "Subtitles",
gt.registerComponent("SubtitlesButton", _n);
var gn = function(n) {
function i(e, t) {
B(this, i),
t.track = {
player: e,
kind: t.kind,
label: t.kind + " settings",
selectable: !1,
default: !1,
mode: "disabled"
},
t.selectable = !1,
t.name = "CaptionSettingsMenuItem";
var r = q(this, n.call(this, e, t));
return r.addClass("vjs-texttrack-settings"),
r.controlText(", opens " + t.kind + " settings dialog"),
r
}
return H(i, n),
i.prototype.handleClick = function(e) {
this.player().getChild("textTrackSettings").open()
}
,
i
}(dn);
gt.registerComponent("CaptionSettingsMenuItem", gn);
var bn = function(n) {
function i(e, t, r) {
return B(this, i),
q(this, n.call(this, e, t, r))
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-captions-button " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.buildWrapperCSSClass = function() {
return "vjs-captions-button " + n.prototype.buildWrapperCSSClass.call(this)
}
,
i.prototype.createItems = function() {
var e = [];
return this.player().tech_ && this.player().tech_.featuresNativeTextTracks || !this.player().getChild("textTrackSettings") || (e.push(new gn(this.player_,{
kind: this.kind_
})),
this.hideThreshold_ += 1),
n.prototype.createItems.call(this, e)
}
,
i
}(fn);
bn.prototype.kind_ = "captions",
bn.prototype.controlText_ = "Captions",
gt.registerComponent("CaptionsButton", bn);
var Tn = function(i) {
function e() {
return B(this, e),
q(this, i.apply(this, arguments))
}
return H(e, i),
e.prototype.createEl = function(e, t, r) {
var n = '<span class="vjs-menu-item-text">' + this.localize(this.options_.label);
return "captions" === this.options_.track.kind && (n += '\n <span aria-hidden="true" class="vjs-icon-placeholder"></span>\n <span class="vjs-control-text"> ' + this.localize("Captions") + "</span>\n "),
n += "</span>",
i.prototype.createEl.call(this, e, G({
innerHTML: n
}, t), r)
}
,
e
}(dn);
gt.registerComponent("SubsCapsMenuItem", Tn);
var wn = function(n) {
function i(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
B(this, i);
var r = q(this, n.call(this, e, t));
return r.label_ = "subtitles",
-1 < ["en", "en-us", "en-ca", "fr-ca"].indexOf(r.player_.language_) && (r.label_ = "captions"),
r.menuButton_.controlText(mt(r.label_)),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-subs-caps-button " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.buildWrapperCSSClass = function() {
return "vjs-subs-caps-button " + n.prototype.buildWrapperCSSClass.call(this)
}
,
i.prototype.createItems = function() {
var e = [];
return this.player().tech_ && this.player().tech_.featuresNativeTextTracks || !this.player().getChild("textTrackSettings") || (e.push(new gn(this.player_,{
kind: this.label_
})),
this.hideThreshold_ += 1),
e = n.prototype.createItems.call(this, e, Tn)
}
,
i
}(fn);
wn.prototype.kinds_ = ["captions", "subtitles"],
wn.prototype.controlText_ = "Subtitles",
gt.registerComponent("SubsCapsButton", wn);
var kn = function(a) {
function s(e, t) {
B(this, s);
var r = t.track
, n = e.audioTracks();
t.label = r.label || r.language || "Unknown",
t.selected = r.enabled;
var i = q(this, a.call(this, e, t));
i.track = r,
i.addClass("vjs-" + r.kind + "-menu-item");
var o = function() {
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
i.handleTracksChange.apply(i, t)
};
return n.addEventListener("change", o),
i.on("dispose", function() {
n.removeEventListener("change", o)
}),
i
}
return H(s, a),
s.prototype.createEl = function(e, t, r) {
var n = '<span class="vjs-menu-item-text">' + this.localize(this.options_.label);
return "main-desc" === this.options_.track.kind && (n += '\n <span aria-hidden="true" class="vjs-icon-placeholder"></span>\n <span class="vjs-control-text"> ' + this.localize("Descriptions") + "</span>\n "),
n += "</span>",
a.prototype.createEl.call(this, e, G({
innerHTML: n
}, t), r)
}
,
s.prototype.handleClick = function(e) {
var t = this.player_.audioTracks();
a.prototype.handleClick.call(this, e);
for (var r = 0; r < t.length; r++) {
var n = t[r];
n.enabled = n === this.track
}
}
,
s.prototype.handleTracksChange = function(e) {
this.selected(this.track.enabled)
}
,
s
}(hn);
gt.registerComponent("AudioTrackMenuItem", kn);
var Sn = function(r) {
function n(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
return B(this, n),
t.tracks = e.audioTracks(),
q(this, r.call(this, e, t))
}
return H(n, r),
n.prototype.buildCSSClass = function() {
return "vjs-audio-button " + r.prototype.buildCSSClass.call(this)
}
,
n.prototype.buildWrapperCSSClass = function() {
return "vjs-audio-button " + r.prototype.buildWrapperCSSClass.call(this)
}
,
n.prototype.createItems = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
this.hideThreshold_ = 1;
for (var t = this.player_.audioTracks(), r = 0; r < t.length; r++) {
var n = t[r];
e.push(new kn(this.player_,{
track: n,
selectable: !0,
multiSelectable: !1
}))
}
return e
}
,
n
}(cn);
Sn.prototype.controlText_ = "Audio Track",
gt.registerComponent("AudioTrackButton", Sn);
var Cn = function(o) {
function a(e, t) {
B(this, a);
var r = t.rate
, n = parseFloat(r, 10);
t.label = r,
t.selected = 1 === n,
t.selectable = !0,
t.multiSelectable = !1;
var i = q(this, o.call(this, e, t));
return i.label = r,
i.rate = n,
i.on(e, "ratechange", i.update),
i
}
return H(a, o),
a.prototype.handleClick = function(e) {
o.prototype.handleClick.call(this),
this.player().playbackRate(this.rate)
}
,
a.prototype.update = function(e) {
this.selected(this.player().playbackRate() === this.rate)
}
,
a
}(hn);
Cn.prototype.contentElType = "button",
gt.registerComponent("PlaybackRateMenuItem", Cn);
var En = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.updateVisibility(),
r.updateLabel(),
r.on(e, "loadstart", r.updateVisibility),
r.on(e, "ratechange", r.updateLabel),
r
}
return H(i, n),
i.prototype.createEl = function() {
var e = n.prototype.createEl.call(this);
return this.labelEl_ = le("div", {
className: "vjs-playback-rate-value",
innerHTML: "1x"
}),
e.appendChild(this.labelEl_),
e
}
,
i.prototype.dispose = function() {
this.labelEl_ = null,
n.prototype.dispose.call(this)
}
,
i.prototype.buildCSSClass = function() {
return "vjs-playback-rate " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.buildWrapperCSSClass = function() {
return "vjs-playback-rate " + n.prototype.buildWrapperCSSClass.call(this)
}
,
i.prototype.createMenu = function() {
var e = new ln(this.player())
, t = this.playbackRates();
if (t)
for (var r = t.length - 1; 0 <= r; r--)
e.addChild(new Cn(this.player(),{
rate: t[r] + "x"
}));
return e
}
,
i.prototype.updateARIAAttributes = function() {
this.el().setAttribute("aria-valuenow", this.player().playbackRate())
}
,
i.prototype.handleClick = function(e) {
for (var t = this.player().playbackRate(), r = this.playbackRates(), n = r[0], i = 0; i < r.length; i++)
if (r[i] > t) {
n = r[i];
break
}
this.player().playbackRate(n)
}
,
i.prototype.playbackRates = function() {
return this.options_.playbackRates || this.options_.playerOptions && this.options_.playerOptions.playbackRates
}
,
i.prototype.playbackRateSupported = function() {
return this.player().tech_ && this.player().tech_.featuresPlaybackRate && this.playbackRates() && 0 < this.playbackRates().length
}
,
i.prototype.updateVisibility = function(e) {
this.playbackRateSupported() ? this.removeClass("vjs-hidden") : this.addClass("vjs-hidden")
}
,
i.prototype.updateLabel = function(e) {
this.playbackRateSupported() && (this.labelEl_.innerHTML = this.player().playbackRate() + "x")
}
,
i
}(un);
En.prototype.controlText_ = "Playback Rate",
gt.registerComponent("PlaybackRateMenuButton", En);
var xn = function(e) {
function t() {
return B(this, t),
q(this, e.apply(this, arguments))
}
return H(t, e),
t.prototype.buildCSSClass = function() {
return "vjs-spacer " + e.prototype.buildCSSClass.call(this)
}
,
t.prototype.createEl = function() {
return e.prototype.createEl.call(this, "div", {
className: this.buildCSSClass()
})
}
,
t
}(gt);
gt.registerComponent("Spacer", xn);
var jn = function(t) {
function e() {
return B(this, e),
q(this, t.apply(this, arguments))
}
return H(e, t),
e.prototype.buildCSSClass = function() {
return "vjs-custom-control-spacer " + t.prototype.buildCSSClass.call(this)
}
,
e.prototype.createEl = function() {
var e = t.prototype.createEl.call(this, {
className: this.buildCSSClass()
});
return e.innerHTML = " ",
e
}
,
e
}(xn);
gt.registerComponent("CustomControlSpacer", jn);
var Pn = function(e) {
function t() {
return B(this, t),
q(this, e.apply(this, arguments))
}
return H(t, e),
t.prototype.createEl = function() {
return e.prototype.createEl.call(this, "div", {
className: "vjs-control-bar",
dir: "ltr"
})
}
,
t
}(gt);
Pn.prototype.options_ = {
children: ["playToggle", "volumePanel", "currentTimeDisplay", "timeDivider", "durationDisplay", "progressControl", "liveDisplay", "remainingTimeDisplay", "customControlSpacer", "playbackRateMenuButton", "chaptersButton", "descriptionsButton", "subsCapsButton", "audioTrackButton", "fullscreenToggle"]
},
gt.registerComponent("ControlBar", Pn);
var On = function(n) {
function i(e, t) {
B(this, i);
var r = q(this, n.call(this, e, t));
return r.on(e, "error", r.open),
r
}
return H(i, n),
i.prototype.buildCSSClass = function() {
return "vjs-error-display " + n.prototype.buildCSSClass.call(this)
}
,
i.prototype.content = function() {
var e = this.player().error();
return e ? this.localize(e.message) : ""
}
,
i
}(Ft);
On.prototype.options_ = _t(Ft.prototype.options_, {
pauseOnOpen: !1,
fillAlways: !0,
temporary: !1,
uncloseable: !0
}),
gt.registerComponent("ErrorDisplay", On);
var An = "vjs-text-track-settings"
, Mn = ["#000", "Black"]
, Dn = ["#00F", "Blue"]
, In = ["#0FF", "Cyan"]
, Rn = ["#0F0", "Green"]
, Nn = ["#F0F", "Magenta"]
, Ln = ["#F00", "Red"]
, Fn = ["#FFF", "White"]
, Bn = ["#FF0", "Yellow"]
, Hn = ["1", "Opaque"]
, qn = ["0.5", "Semi-Transparent"]
, Vn = ["0", "Transparent"]
, Wn = {
backgroundColor: {
selector: ".vjs-bg-color > select",
id: "captions-background-color-%s",
label: "Color",
options: [Mn, Fn, Ln, Rn, Dn, Bn, Nn, In]
},
backgroundOpacity: {
selector: ".vjs-bg-opacity > select",
id: "captions-background-opacity-%s",
label: "Transparency",
options: [Hn, qn, Vn]
},
color: {
selector: ".vjs-fg-color > select",
id: "captions-foreground-color-%s",
label: "Color",
options: [Fn, Mn, Ln, Rn, Dn, Bn, Nn, In]
},
edgeStyle: {
selector: ".vjs-edge-style > select",
id: "%s",
label: "Text Edge Style",
options: [["none", "None"], ["raised", "Raised"], ["depressed", "Depressed"], ["uniform", "Uniform"], ["dropshadow", "Dropshadow"]]
},
fontFamily: {
selector: ".vjs-font-family > select",
id: "captions-font-family-%s",
label: "Font Family",
options: [["proportionalSansSerif", "Proportional Sans-Serif"], ["monospaceSansSerif", "Monospace Sans-Serif"], ["proportionalSerif", "Proportional Serif"], ["monospaceSerif", "Monospace Serif"], ["casual", "Casual"], ["script", "Script"], ["small-caps", "Small Caps"]]
},
fontPercent: {
selector: ".vjs-font-percent > select",
id: "captions-font-size-%s",
label: "Font Size",
options: [["0.50", "50%"], ["0.75", "75%"], ["1.00", "100%"], ["1.25", "125%"], ["1.50", "150%"], ["1.75", "175%"], ["2.00", "200%"], ["3.00", "300%"], ["4.00", "400%"]],
default: 2,
parser: function(e) {
return "1.00" === e ? null : Number(e)
}
},
textOpacity: {
selector: ".vjs-text-opacity > select",
id: "captions-foreground-opacity-%s",
label: "Transparency",
options: [Hn, qn]
},
windowColor: {
selector: ".vjs-window-color > select",
id: "captions-window-color-%s",
label: "Color"
},
windowOpacity: {
selector: ".vjs-window-opacity > select",
id: "captions-window-opacity-%s",
label: "Transparency",
options: [Vn, qn, Hn]
}
};
function Un(e, t) {
if (t && (e = t(e)),
e && "none" !== e)
return e
}
Wn.windowColor.options = Wn.backgroundColor.options;
var zn = function(n) {
function i(e, t) {
B(this, i),
t.temporary = !1;
var r = q(this, n.call(this, e, t));
return r.updateDisplay = nt(r, r.updateDisplay),
r.fill(),
r.hasBeenOpened_ = r.hasBeenFilled_ = !0,
r.endDialog = le("p", {
className: "vjs-control-text",
textContent: r.localize("End of dialog window.")
}),
r.el().appendChild(r.endDialog),
r.setDefaults(),
void 0 === t.persistTextTrackSettings && (r.options_.persistTextTrackSettings = r.options_.playerOptions.persistTextTrackSettings),
r.on(r.$(".vjs-done-button"), "click", function() {
r.saveSettings(),
r.close()
}),
r.on(r.$(".vjs-default-button"), "click", function() {
r.setDefaults(),
r.updateDisplay()
}),
z(Wn, function(e) {
r.on(r.$(e.selector), "change", r.updateDisplay)
}),
r.options_.persistTextTrackSettings && r.restoreSettings(),
r
}
return H(i, n),
i.prototype.dispose = function() {
this.endDialog = null,
n.prototype.dispose.call(this)
}
,
i.prototype.createElSelect_ = function(e) {
var r = this
, t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : ""
, n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "label"
, i = Wn[e]
, o = i.id.replace("%s", this.id_)
, a = [t, o].join(" ").trim();
return ["<" + n + ' id="' + o + '" class="' + ("label" === n ? "vjs-label" : "") + '">', this.localize(i.label), "</" + n + ">", '<select aria-labelledby="' + a + '">'].concat(i.options.map(function(e) {
var t = o + "-" + e[1].replace(/\W+/g, "");
return ['<option id="' + t + '" value="' + e[0] + '" ', 'aria-labelledby="' + a + " " + t + '">', r.localize(e[1]), "</option>"].join("")
})).concat("</select>").join("")
}
,
i.prototype.createElFgColor_ = function() {
var e = "captions-text-legend-" + this.id_;
return ['<fieldset class="vjs-fg-color vjs-track-setting">', '<legend id="' + e + '">', this.localize("Text"), "</legend>", this.createElSelect_("color", e), '<span class="vjs-text-opacity vjs-opacity">', this.createElSelect_("textOpacity", e), "</span>", "</fieldset>"].join("")
}
,
i.prototype.createElBgColor_ = function() {
var e = "captions-background-" + this.id_;
return ['<fieldset class="vjs-bg-color vjs-track-setting">', '<legend id="' + e + '">', this.localize("Background"), "</legend>", this.createElSelect_("backgroundColor", e), '<span class="vjs-bg-opacity vjs-opacity">', this.createElSelect_("backgroundOpacity", e), "</span>", "</fieldset>"].join("")
}
,
i.prototype.createElWinColor_ = function() {
var e = "captions-window-" + this.id_;
return ['<fieldset class="vjs-window-color vjs-track-setting">', '<legend id="' + e + '">', this.localize("Window"), "</legend>", this.createElSelect_("windowColor", e), '<span class="vjs-window-opacity vjs-opacity">', this.createElSelect_("windowOpacity", e), "</span>", "</fieldset>"].join("")
}
,
i.prototype.createElColors_ = function() {
return le("div", {
className: "vjs-track-settings-colors",
innerHTML: [this.createElFgColor_(), this.createElBgColor_(), this.createElWinColor_()].join("")
})
}
,
i.prototype.createElFont_ = function() {
return le("div", {
className: "vjs-track-settings-font",
innerHTML: ['<fieldset class="vjs-font-percent vjs-track-setting">', this.createElSelect_("fontPercent", "", "legend"), "</fieldset>", '<fieldset class="vjs-edge-style vjs-track-setting">', this.createElSelect_("edgeStyle", "", "legend"), "</fieldset>", '<fieldset class="vjs-font-family vjs-track-setting">', this.createElSelect_("fontFamily", "", "legend"), "</fieldset>"].join("")
})
}
,
i.prototype.createElControls_ = function() {
var e = this.localize("restore all settings to the default values");
return le("div", {
className: "vjs-track-settings-controls",
innerHTML: ['<button class="vjs-default-button" title="' + e + '">', this.localize("Reset"), '<span class="vjs-control-text"> ' + e + "</span>", "</button>", '<button class="vjs-done-button">' + this.localize("Done") + "</button>"].join("")
})
}
,
i.prototype.content = function() {
return [this.createElColors_(), this.createElFont_(), this.createElControls_()]
}
,
i.prototype.label = function() {
return this.localize("Caption Settings Dialog")
}
,
i.prototype.description = function() {
return this.localize("Beginning of dialog window. Escape will cancel and close the window.")
}
,
i.prototype.buildCSSClass = function() {
return n.prototype.buildCSSClass.call(this) + " vjs-text-track-settings"
}
,
i.prototype.getValues = function() {
var a = this;
return function(r, n) {
var e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 0;
return U(r).reduce(function(e, t) {
return n(e, r[t], t)
}, e)
}(Wn, function(e, t, r) {
var n, i, o = (n = a.$(t.selector),
i = t.parser,
Un(n.options[n.options.selectedIndex].value, i));
return void 0 !== o && (e[r] = o),
e
}, {})
}
,
i.prototype.setValues = function(r) {
var n = this;
z(Wn, function(e, t) {
!function(e, t, r) {
if (t)
for (var n = 0; n < e.options.length; n++)
if (Un(e.options[n].value, r) === t) {
e.selectedIndex = n;
break
}
}(n.$(e.selector), r[t], e.parser)
})
}
,
i.prototype.setDefaults = function() {
var r = this;
z(Wn, function(e) {
var t = e.hasOwnProperty("default") ? e.default : 0;
r.$(e.selector).selectedIndex = t
})
}
,
i.prototype.restoreSettings = function() {
var e = void 0;
try {
e = JSON.parse(p.localStorage.getItem(An))
} catch (e) {
Z.warn(e)
}
e && this.setValues(e)
}
,
i.prototype.saveSettings = function() {
if (this.options_.persistTextTrackSettings) {
var e = this.getValues();
try {
Object.keys(e).length ? p.localStorage.setItem(An, JSON.stringify(e)) : p.localStorage.removeItem(An)
} catch (e) {
Z.warn(e)
}
}
}
,
i.prototype.updateDisplay = function() {
var e = this.player_.getChild("textTrackDisplay");
e && e.updateDisplay()
}
,
i.prototype.conditionalBlur_ = function() {
this.previouslyActiveEl_ = null,
this.off(f, "keydown", this.handleKeyDown);
var e = this.player_.controlBar
, t = e && e.subsCapsButton
, r = e && e.captionsButton;
t ? t.focus() : r && r.focus()
}
,
i
}(Ft);
gt.registerComponent("TextTrackSettings", zn);
var Gn = function(o) {
function a(e, t) {
B(this, a);
var r = t.ResizeObserver || p.ResizeObserver;
null === t.ResizeObserver && (r = !1);
var n = _t({
createEl: !r
}, t)
, i = q(this, o.call(this, e, n));
return i.ResizeObserver = t.ResizeObserver || p.ResizeObserver,
i.loadListener_ = null,
i.resizeObserver_ = null,
i.debouncedHandler_ = function(n, i, o) {
var a = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : p
, s = void 0;
return function() {
var e = this
, t = arguments
, r = function() {
r = s = null,
o || n.apply(e, t)
};
!s && o && n.apply(e, t),
a.clearTimeout(s),
s = a.setTimeout(r, i)
}
}(function() {
i.resizeHandler()
}, 100, !1, e),
r ? (i.resizeObserver_ = new i.ResizeObserver(i.debouncedHandler_),
i.resizeObserver_.observe(e.el())) : (i.loadListener_ = function() {
i.el_.contentWindow && Ge(i.el_.contentWindow, "resize", i.debouncedHandler_),
i.off("load", i.loadListener_)
}
,
i.on("load", i.loadListener_)),
i
}
return H(a, o),
a.prototype.createEl = function() {
return o.prototype.createEl.call(this, "iframe", {
className: "vjs-resize-manager"
})
}
,
a.prototype.resizeHandler = function() {
this.player_.trigger("playerresize")
}
,
a.prototype.dispose = function() {
this.resizeObserver_ && (this.player_.el() && this.resizeObserver_.unobserve(this.player_.el()),
this.resizeObserver_.disconnect()),
this.el_ && this.el_.contentWindow && $e(this.el_.contentWindow, "resize", this.debouncedHandler_),
this.loadListener_ && this.off("load", this.loadListener_),
this.ResizeObserver = null,
this.resizeObserver = null,
this.debouncedHandler_ = null,
this.loadListener_ = null
}
,
a
}(gt);
gt.registerComponent("ResizeManager", Gn);
var $n = function(e) {
var t = e.el();
if (t.hasAttribute("src"))
return e.triggerSourceset(t.src),
!0;
var r = e.$$("source")
, n = []
, i = "";
if (!r.length)
return !1;
for (var o = 0; o < r.length; o++) {
var a = r[o].src;
a && -1 === n.indexOf(a) && n.push(a)
}
return !!n.length && (1 === n.length && (i = n[0]),
e.triggerSourceset(i),
!0)
}
, Kn = {};
A || (Kn = Object.defineProperty({}, "innerHTML", {
get: function() {
return this.cloneNode(!0).innerHTML
},
set: function(e) {
var t = f.createElement(this.nodeName.toLowerCase());
t.innerHTML = e;
for (var r = f.createDocumentFragment(); t.childNodes.length; )
r.appendChild(t.childNodes[0]);
return this.innerText = "",
p.Element.prototype.appendChild.call(this, r),
this.innerHTML
}
}));
var Xn = function(e, t) {
for (var r = {}, n = 0; n < e.length && !((r = Object.getOwnPropertyDescriptor(e[n], t)) && r.set && r.get); n++)
;
return r.enumerable = !0,
r.configurable = !0,
r
}
, Jn = function(o) {
var a = o.el();
if (!a.resetSourceWatch_) {
var t = {}
, e = Xn([o.el(), p.HTMLMediaElement.prototype, p.Element.prototype, Kn], "innerHTML")
, r = function(i) {
return function() {
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
var n = i.apply(a, t);
return $n(o),
n
}
};
["append", "appendChild", "insertAdjacentHTML"].forEach(function(e) {
a[e] && (t[e] = a[e],
a[e] = r(t[e]))
}),
Object.defineProperty(a, "innerHTML", _t(e, {
set: r(e.set)
})),
a.resetSourceWatch_ = function() {
a.resetSourceWatch_ = null,
Object.keys(t).forEach(function(e) {
a[e] = t[e]
}),
Object.defineProperty(a, "innerHTML", e)
}
,
o.one("sourceset", a.resetSourceWatch_)
}
}
, Qn = {};
A || (Qn = Object.defineProperty({}, "src", {
get: function() {
return this.hasAttribute("src") ? er(p.Element.prototype.getAttribute.call(this, "src")) : ""
},
set: function(e) {
return p.Element.prototype.setAttribute.call(this, "src", e),
e
}
}));
var Yn = function(n) {
if (n.featuresSourceset) {
var i = n.el();
if (!i.resetSourceset_) {
var r = Xn([n.el(), p.HTMLMediaElement.prototype, Qn], "src")
, o = i.setAttribute
, t = i.load;
Object.defineProperty(i, "src", _t(r, {
set: function(e) {
var t = r.set.call(i, e);
return n.triggerSourceset(i.src),
t
}
})),
i.setAttribute = function(e, t) {
var r = o.call(i, e, t);
return /src/i.test(e) && n.triggerSourceset(i.src),
r
}
,
i.load = function() {
var e = t.call(i);
return $n(n) || (n.triggerSourceset(""),
Jn(n)),
e
}
,
i.currentSrc ? n.triggerSourceset(i.currentSrc) : $n(n) || Jn(n),
i.resetSourceset_ = function() {
i.resetSourceset_ = null,
i.load = t,
i.setAttribute = o,
Object.defineProperty(i, "src", r),
i.resetSourceWatch_ && i.resetSourceWatch_()
}
}
}
}
, Zn = V(["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n This may prevent text tracks from loading."], ["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n This may prevent text tracks from loading."])
, ei = function(c) {
function h(e, t) {
B(this, h);
var r = q(this, c.call(this, e, t))
, n = e.source
, i = !1;
if (n && (r.el_.currentSrc !== n.src || e.tag && 3 === e.tag.initNetworkState_) ? r.setSource(n) : r.handleLateInit_(r.el_),
e.enableSourceset && r.setupSourcesetHandling_(),
r.el_.hasChildNodes()) {
for (var o = r.el_.childNodes, a = o.length, s = []; a--; ) {
var l = o[a];
"track" === l.nodeName.toLowerCase() && (r.featuresNativeTextTracks ? (r.remoteTextTrackEls().addTrackElement_(l),
r.remoteTextTracks().addTrack(l.track),
r.textTracks().addTrack(l.track),
i || r.el_.hasAttribute("crossorigin") || !rr(l.src) || (i = !0)) : s.push(l))
}
for (var u = 0; u < s.length; u++)
r.el_.removeChild(s[u])
}
return r.proxyNativeTracks_(),
r.featuresNativeTextTracks && i && Z.warn(d(Zn)),
r.restoreMetadataTracksInIOSNativePlayer_(),
(R || g || E) && !0 === e.nativeControlsForTouch && r.setControls(!0),
r.proxyWebkitFullscreen_(),
r.triggerReady(),
r
}
return H(h, c),
h.prototype.dispose = function() {
this.el_ && this.el_.resetSourceset_ && this.el_.resetSourceset_(),
h.disposeMediaElement(this.el_),
this.options_ = null,
c.prototype.dispose.call(this)
}
,
h.prototype.setupSourcesetHandling_ = function() {
Yn(this)
}
,
h.prototype.restoreMetadataTracksInIOSNativePlayer_ = function() {
var n = this.textTracks()
, i = void 0
, e = function() {
i = [];
for (var e = 0; e < n.length; e++) {
var t = n[e];
"metadata" === t.kind && i.push({
track: t,
storedMode: t.mode
})
}
};
e(),
n.addEventListener("change", e),
this.on("dispose", function() {
return n.removeEventListener("change", e)
});
var t = function e() {
for (var t = 0; t < i.length; t++) {
var r = i[t];
"disabled" === r.track.mode && r.track.mode !== r.storedMode && (r.track.mode = r.storedMode)
}
n.removeEventListener("change", e)
};
this.on("webkitbeginfullscreen", function() {
n.removeEventListener("change", e),
n.removeEventListener("change", t),
n.addEventListener("change", t)
}),
this.on("webkitendfullscreen", function() {
n.removeEventListener("change", e),
n.addEventListener("change", e),
n.removeEventListener("change", t)
})
}
,
h.prototype.proxyNativeTracks_ = function() {
var a = this;
ur.names.forEach(function(e) {
var t = ur[e]
, i = a.el()[t.getterName]
, o = a[t.getterName]();
if (a["featuresNative" + t.capitalName + "Tracks"] && i && i.addEventListener) {
var n = {
change: function(e) {
o.trigger({
type: "change",
target: o,
currentTarget: o,
srcElement: o
})
},
addtrack: function(e) {
o.addTrack(e.track)
},
removetrack: function(e) {
o.removeTrack(e.track)
}
}
, r = function() {
for (var e = [], t = 0; t < o.length; t++) {
for (var r = !1, n = 0; n < i.length; n++)
if (i[n] === o[t]) {
r = !0;
break
}
r || e.push(o[t])
}
for (; e.length; )
o.removeTrack(e.shift())
};
Object.keys(n).forEach(function(t) {
var r = n[t];
i.addEventListener(t, r),
a.on("dispose", function(e) {
return i.removeEventListener(t, r)
})
}),
a.on("loadstart", r),
a.on("dispose", function(e) {
return a.off("loadstart", r)
})
}
})
}
,
h.prototype.createEl = function() {
var e = this.options_.tag;
if (!e || !this.options_.playerElIngest && !this.movingMediaElementInDOM) {
if (e) {
var t = e.cloneNode(!0);
e.parentNode && e.parentNode.insertBefore(t, e),
h.disposeMediaElement(e),
e = t
} else {
e = f.createElement("video");
var r = _t({}, this.options_.tag && ye(this.options_.tag));
R && !0 === this.options_.nativeControlsForTouch || delete r.controls,
ve(e, G(r, {
id: this.options_.techId,
class: "vjs-tech"
}))
}
e.playerId = this.options_.playerId
}
void 0 !== this.options_.preload && _e(e, "preload", this.options_.preload);
for (var n = ["loop", "muted", "playsinline", "autoplay"], i = 0; i < n.length; i++) {
var o = n[i]
, a = this.options_[o];
void 0 !== a && (a ? _e(e, o, o) : ge(e, o),
e[o] = a)
}
return e
}
,
h.prototype.handleLateInit_ = function(e) {
if (0 !== e.networkState && 3 !== e.networkState) {
if (0 === e.readyState) {
var t = !1
, r = function() {
t = !0
};
this.on("loadstart", r);
var n = function() {
t || this.trigger("loadstart")
};
return this.on("loadedmetadata", n),
void this.ready(function() {
this.off("loadstart", r),
this.off("loadedmetadata", n),
t || this.trigger("loadstart")
})
}
var i = ["loadstart"];
i.push("loadedmetadata"),
2 <= e.readyState && i.push("loadeddata"),
3 <= e.readyState && i.push("canplay"),
4 <= e.readyState && i.push("canplaythrough"),
this.ready(function() {
i.forEach(function(e) {
this.trigger(e)
}, this)
})
}
}
,
h.prototype.setCurrentTime = function(e) {
try {
this.el_.currentTime = e
} catch (e) {
Z(e, "Video is not ready. (Video.js)")
}
}
,
h.prototype.duration = function() {
var t = this;
if (this.el_.duration === 1 / 0 && k && P && 0 === this.el_.currentTime) {
return this.on("timeupdate", function e() {
0 < t.el_.currentTime && (t.el_.duration === 1 / 0 && t.trigger("durationchange"),
t.off("timeupdate", e))
}),
NaN
}
return this.el_.duration || NaN
}
,
h.prototype.width = function() {
return this.el_.offsetWidth
}
,
h.prototype.height = function() {
return this.el_.offsetHeight
}
,
h.prototype.proxyWebkitFullscreen_ = function() {
var e = this;
if ("webkitDisplayingFullscreen"in this.el_) {
var t = function() {
this.trigger("fullscreenchange", {
isFullscreen: !1
})
}
, r = function() {
"webkitPresentationMode"in this.el_ && "picture-in-picture" !== this.el_.webkitPresentationMode && (this.one("webkitendfullscreen", t),
this.trigger("fullscreenchange", {
isFullscreen: !0
}))
};
this.on("webkitbeginfullscreen", r),
this.on("dispose", function() {
e.off("webkitbeginfullscreen", r),
e.off("webkitendfullscreen", t)
})
}
}
,
h.prototype.supportsFullScreen = function() {
if ("function" == typeof this.el_.webkitEnterFullScreen) {
var e = p.navigator && p.navigator.userAgent || "";
if (/Android/.test(e) || !/Chrome|Mac OS X 10.5/.test(e))
return !0
}
return !1
}
,
h.prototype.enterFullScreen = function() {
var e = this.el_;
e.paused && e.networkState <= e.HAVE_METADATA ? (this.el_.play(),
this.setTimeout(function() {
e.pause(),
e.webkitEnterFullScreen()
}, 0)) : e.webkitEnterFullScreen()
}
,
h.prototype.exitFullScreen = function() {
this.el_.webkitExitFullScreen()
}
,
h.prototype.src = function(e) {
if (void 0 === e)
return this.el_.src;
this.setSrc(e)
}
,
h.prototype.reset = function() {
h.resetMediaElement(this.el_)
}
,
h.prototype.currentSrc = function() {
return this.currentSource_ ? this.currentSource_.src : this.el_.currentSrc
}
,
h.prototype.setControls = function(e) {
this.el_.controls = !!e
}
,
h.prototype.addTextTrack = function(e, t, r) {
return this.featuresNativeTextTracks ? this.el_.addTextTrack(e, t, r) : c.prototype.addTextTrack.call(this, e, t, r)
}
,
h.prototype.createRemoteTextTrack = function(e) {
if (!this.featuresNativeTextTracks)
return c.prototype.createRemoteTextTrack.call(this, e);
var t = f.createElement("track");
return e.kind && (t.kind = e.kind),
e.label && (t.label = e.label),
(e.language || e.srclang) && (t.srclang = e.language || e.srclang),
e.default && (t.default = e.default),
e.id && (t.id = e.id),
e.src && (t.src = e.src),
t
}
,
h.prototype.addRemoteTextTrack = function(e, t) {
var r = c.prototype.addRemoteTextTrack.call(this, e, t);
return this.featuresNativeTextTracks && this.el().appendChild(r),
r
}
,
h.prototype.removeRemoteTextTrack = function(e) {
if (c.prototype.removeRemoteTextTrack.call(this, e),
this.featuresNativeTextTracks)
for (var t = this.$$("track"), r = t.length; r--; )
e !== t[r] && e !== t[r].track || this.el().removeChild(t[r])
}
,
h.prototype.getVideoPlaybackQuality = function() {
if ("function" == typeof this.el().getVideoPlaybackQuality)
return this.el().getVideoPlaybackQuality();
var e = {};
return void 0 !== this.el().webkitDroppedFrameCount && void 0 !== this.el().webkitDecodedFrameCount && (e.droppedVideoFrames = this.el().webkitDroppedFrameCount,
e.totalVideoFrames = this.el().webkitDecodedFrameCount),
p.performance && "function" == typeof p.performance.now ? e.creationTime = p.performance.now() : p.performance && p.performance.timing && "number" == typeof p.performance.timing.navigationStart && (e.creationTime = p.Date.now() - p.performance.timing.navigationStart),
e
}
,
h
}(dr);
if (ie()) {
ei.TEST_VID = f.createElement("video");
var ti = f.createElement("track");
ti.kind = "captions",
ti.srclang = "en",
ti.label = "English",
ei.TEST_VID.appendChild(ti)
}
ei.isSupported = function() {
try {
ei.TEST_VID.volume = .5
} catch (e) {
return !1
}
return !(!ei.TEST_VID || !ei.TEST_VID.canPlayType)
}
,
ei.canPlayType = function(e) {
return ei.TEST_VID.canPlayType(e)
}
,
ei.canPlaySource = function(e, t) {
return ei.canPlayType(e.type)
}
,
ei.canControlVolume = function() {
try {
var e = ei.TEST_VID.volume;
return ei.TEST_VID.volume = e / 2 + .1,
e !== ei.TEST_VID.volume
} catch (e) {
return !1
}
}
,
ei.canMuteVolume = function() {
try {
var e = ei.TEST_VID.muted;
return ei.TEST_VID.muted = !e,
ei.TEST_VID.muted ? _e(ei.TEST_VID, "muted", "muted") : ge(ei.TEST_VID, "muted"),
e !== ei.TEST_VID.muted
} catch (e) {
return !1
}
}
,
ei.canControlPlaybackRate = function() {
if (k && P && O < 58)
return !1;
try {
var e = ei.TEST_VID.playbackRate;
return ei.TEST_VID.playbackRate = e / 2 + .1,
e !== ei.TEST_VID.playbackRate
} catch (e) {
return !1
}
}
,
ei.canOverrideAttributes = function() {
if (A)
return !1;
try {
var e = function() {};
Object.defineProperty(f.createElement("video"), "src", {
get: e,
set: e
}),
Object.defineProperty(f.createElement("audio"), "src", {
get: e,
set: e
}),
Object.defineProperty(f.createElement("video"), "innerHTML", {
get: e,
set: e
}),
Object.defineProperty(f.createElement("audio"), "innerHTML", {
get: e,
set: e
})
} catch (e) {
return !1
}
return !0
}
,
ei.supportsNativeTextTracks = function() {
return I || T && P
}
,
ei.supportsNativeVideoTracks = function() {
return !(!ei.TEST_VID || !ei.TEST_VID.videoTracks)
}
,
ei.supportsNativeAudioTracks = function() {
return !(!ei.TEST_VID || !ei.TEST_VID.audioTracks)
}
,
ei.Events = ["loadstart", "suspend", "abort", "error", "emptied", "stalled", "loadedmetadata", "loadeddata", "canplay", "canplaythrough", "playing", "waiting", "seeking", "seeked", "ended", "durationchange", "timeupdate", "progress", "play", "pause", "ratechange", "resize", "volumechange"],
ei.prototype.featuresVolumeControl = ei.canControlVolume(),
ei.prototype.featuresMuteControl = ei.canMuteVolume(),
ei.prototype.featuresPlaybackRate = ei.canControlPlaybackRate(),
ei.prototype.featuresSourceset = ei.canOverrideAttributes(),
ei.prototype.movingMediaElementInDOM = !T,
ei.prototype.featuresFullscreenResize = !0,
ei.prototype.featuresProgressEvents = !0,
ei.prototype.featuresTimeupdateEvents = !0,
ei.prototype.featuresNativeTextTracks = ei.supportsNativeTextTracks(),
ei.prototype.featuresNativeVideoTracks = ei.supportsNativeVideoTracks(),
ei.prototype.featuresNativeAudioTracks = ei.supportsNativeAudioTracks();
var ri = ei.TEST_VID && ei.TEST_VID.constructor.prototype.canPlayType
, ni = /^application\/(?:x-|vnd\.apple\.)mpegurl/i
, ii = /^video\/mp4/i;
ei.patchCanPlayType = function() {
4 <= S && !x && !P ? ei.TEST_VID.constructor.prototype.canPlayType = function(e) {
return e && ni.test(e) ? "maybe" : ri.call(this, e)
}
: C && (ei.TEST_VID.constructor.prototype.canPlayType = function(e) {
return e && ii.test(e) ? "maybe" : ri.call(this, e)
}
)
}
,
ei.unpatchCanPlayType = function() {
var e = ei.TEST_VID.constructor.prototype.canPlayType;
return ei.TEST_VID.constructor.prototype.canPlayType = ri,
e
}
,
ei.patchCanPlayType(),
ei.disposeMediaElement = function(e) {
if (e) {
for (e.parentNode && e.parentNode.removeChild(e); e.hasChildNodes(); )
e.removeChild(e.firstChild);
e.removeAttribute("src"),
"function" == typeof e.load && function() {
try {
e.load()
} catch (e) {}
}()
}
}
,
ei.resetMediaElement = function(e) {
if (e) {
for (var t = e.querySelectorAll("source"), r = t.length; r--; )
e.removeChild(t[r]);
e.removeAttribute("src"),
"function" == typeof e.load && function() {
try {
e.load()
} catch (e) {}
}()
}
}
,
["muted", "defaultMuted", "autoplay", "controls", "loop", "playsinline"].forEach(function(e) {
ei.prototype[e] = function() {
return this.el_[e] || this.el_.hasAttribute(e)
}
}),
["muted", "defaultMuted", "autoplay", "loop", "playsinline"].forEach(function(t) {
ei.prototype["set" + mt(t)] = function(e) {
(this.el_[t] = e) ? this.el_.setAttribute(t, t) : this.el_.removeAttribute(t)
}
}),
["paused", "currentTime", "buffered", "volume", "poster", "preload", "error", "seeking", "seekable", "ended", "playbackRate", "defaultPlaybackRate", "played", "networkState", "readyState", "videoWidth", "videoHeight"].forEach(function(e) {
ei.prototype[e] = function() {
return this.el_[e]
}
}),
["volume", "src", "poster", "preload", "playbackRate", "defaultPlaybackRate"].forEach(function(t) {
ei.prototype["set" + mt(t)] = function(e) {
this.el_[t] = e
}
}),
["pause", "load", "play"].forEach(function(e) {
ei.prototype[e] = function() {
return this.el_[e]()
}
}),
dr.withSourceHandlers(ei),
ei.nativeSourceHandler = {},
ei.nativeSourceHandler.canPlayType = function(e) {
try {
return ei.TEST_VID.canPlayType(e)
} catch (e) {
return ""
}
}
,
ei.nativeSourceHandler.canHandleSource = function(e, t) {
if (e.type)
return ei.nativeSourceHandler.canPlayType(e.type);
if (e.src) {
var r = tr(e.src);
return ei.nativeSourceHandler.canPlayType("video/" + r)
}
return ""
}
,
ei.nativeSourceHandler.handleSource = function(e, t, r) {
t.setSrc(e.src)
}
,
ei.nativeSourceHandler.dispose = function() {}
,
ei.registerSourceHandler(ei.nativeSourceHandler),
dr.registerTech("Html5", ei);
var oi = V(["\n Using the tech directly can be dangerous. I hope you know what you're doing.\n See https://github.com/videojs/video.js/issues/2617 for more info.\n "], ["\n Using the tech directly can be dangerous. I hope you know what you're doing.\n See https://github.com/videojs/video.js/issues/2617 for more info.\n "])
, ai = ["progress", "abort", "suspend", "emptied", "stalled", "loadedmetadata", "loadeddata", "timeupdate", "resize", "volumechange", "texttrackchange"]
, si = {
canplay: "CanPlay",
canplaythrough: "CanPlayThrough",
playing: "Playing",
seeked: "Seeked"
}
, li = function(c) {
function h(e, t, r) {
if (B(this, h),
e.id = e.id || t.id || "vjs_video_" + Re(),
(t = G(h.getTagSettings(e), t)).initChildren = !1,
t.createEl = !1,
t.evented = !1,
t.reportTouchActivity = !1,
!t.language)
if ("function" == typeof e.closest) {
var n = e.closest("[lang]");
n && n.getAttribute && (t.language = n.getAttribute("lang"))
} else
for (var i = e; i && 1 === i.nodeType; ) {
if (ye(i).hasOwnProperty("lang")) {
t.language = i.getAttribute("lang");
break
}
i = i.parentNode
}
var o = q(this, c.call(this, null, t, r));
if (o.isPosterFromTech_ = !1,
o.queuedCallbacks_ = [],
o.isReady_ = !1,
o.hasStarted_ = !1,
o.userActive_ = !1,
!o.options_ || !o.options_.techOrder || !o.options_.techOrder.length)
throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");
if (o.tag = e,
o.tagAttributes = e && ye(e),
o.language(o.options_.language),
t.languages) {
var a = {};
Object.getOwnPropertyNames(t.languages).forEach(function(e) {
a[e.toLowerCase()] = t.languages[e]
}),
o.languages_ = a
} else
o.languages_ = h.prototype.options_.languages;
o.cache_ = {},
o.poster_ = t.poster || "",
o.controls_ = !!t.controls,
o.cache_.lastVolume = 1,
e.controls = !1,
e.removeAttribute("controls"),
e.hasAttribute("autoplay") ? o.options_.autoplay = !0 : o.autoplay(o.options_.autoplay),
o.scrubbing_ = !1,
o.el_ = o.createEl(),
o.cache_.lastPlaybackRate = o.defaultPlaybackRate(),
ft(o, {
eventBusKey: "el_"
});
var s = _t(o.options_);
if (t.plugins) {
var l = t.plugins;
Object.keys(l).forEach(function(e) {
if ("function" != typeof this[e])
throw new Error('plugin "' + e + '" does not exist');
this[e](l[e])
}, o)
}
o.options_.playerOptions = s,
o.middleware_ = [],
o.initChildren(),
o.isAudio("audio" === e.nodeName.toLowerCase()),
o.controls() ? o.addClass("vjs-controls-enabled") : o.addClass("vjs-controls-disabled"),
o.el_.setAttribute("role", "region"),
o.isAudio() ? o.el_.setAttribute("aria-label", o.localize("Audio Player")) : o.el_.setAttribute("aria-label", o.localize("Video Player")),
o.isAudio() && o.addClass("vjs-audio"),
o.flexNotSupported_() && o.addClass("vjs-no-flex"),
T || o.addClass("vjs-workinghover"),
h.players[o.id_] = o;
var u = m.split(".")[0];
return o.addClass("vjs-v" + u),
o.userActive(!0),
o.reportUserActivity(),
o.one("play", o.listenForUserActivity_),
o.on("fullscreenchange", o.handleFullscreenChange_),
o.on("stageclick", o.handleStageClick_),
o.changingSrc_ = !1,
o.playWaitingForReady_ = !1,
o.playOnLoadstart_ = null,
o
}
return H(h, c),
h.prototype.dispose = function() {
this.trigger("dispose"),
this.off("dispose"),
this.styleEl_ && this.styleEl_.parentNode && (this.styleEl_.parentNode.removeChild(this.styleEl_),
this.styleEl_ = null),
h.players[this.id_] = null,
this.tag && this.tag.player && (this.tag.player = null),
this.el_ && this.el_.player && (this.el_.player = null),
this.tech_ && (this.tech_.dispose(),
this.isPosterFromTech_ = !1,
this.poster_ = ""),
this.playerElIngest_ && (this.playerElIngest_ = null),
this.tag && (this.tag = null),
fr[this.id()] = null,
c.prototype.dispose.call(this)
}
,
h.prototype.createEl = function() {
var t = this.tag
, r = void 0
, e = this.playerElIngest_ = t.parentNode && t.parentNode.hasAttribute && t.parentNode.hasAttribute("data-vjs-player")
, n = "video-js" === this.tag.tagName.toLowerCase();
e ? r = this.el_ = t.parentNode : n || (r = this.el_ = c.prototype.createEl.call(this, "div"));
var i = ye(t);
if (n) {
for (r = this.el_ = t,
t = this.tag = f.createElement("video"); r.children.length; )
t.appendChild(r.firstChild);
he(r, "video-js") || de(r, "video-js"),
r.appendChild(t),
e = this.playerElIngest_ = r,
["autoplay", "controls", "crossOrigin", "defaultMuted", "defaultPlaybackRate", "loop", "muted", "playbackRate", "src", "volume"].forEach(function(e) {
void 0 !== r[e] && (t[e] = r[e])
})
}
if (t.setAttribute("tabindex", "-1"),
M && t.setAttribute("role", "application"),
t.removeAttribute("width"),
t.removeAttribute("height"),
Object.getOwnPropertyNames(i).forEach(function(e) {
"class" === e ? (r.className += " " + i[e],
n && (t.className += " " + i[e])) : (r.setAttribute(e, i[e]),
n && t.setAttribute(e, i[e]))
}),
t.playerId = t.id,
t.id += "_html5_api",
t.className = "vjs-tech",
t.player = r.player = this,
this.addClass("vjs-paused"),
!0 !== p.VIDEOJS_NO_DYNAMIC_STYLE) {
this.styleEl_ = tt("vjs-styles-dimensions");
var o = Ae(".vjs-styles-defaults")
, a = Ae("head");
a.insertBefore(this.styleEl_, o ? o.nextSibling : a.firstChild)
}
this.width(this.options_.width),
this.height(this.options_.height),
this.fluid(this.options_.fluid),
this.aspectRatio(this.options_.aspectRatio);
for (var s = t.getElementsByTagName("a"), l = 0; l < s.length; l++) {
var u = s.item(l);
de(u, "vjs-hidden"),
u.setAttribute("hidden", "hidden")
}
return t.initNetworkState_ = t.networkState,
t.parentNode && !e && t.parentNode.insertBefore(r, t),
ce(t, r),
this.children_.unshift(t),
this.el_.setAttribute("lang", this.language_),
this.el_ = r
}
,
h.prototype.width = function(e) {
return this.dimension("width", e)
}
,
h.prototype.height = function(e) {
return this.dimension("height", e)
}
,
h.prototype.dimension = function(e, t) {
var r = e + "_";
if (void 0 === t)
return this[r] || 0;
if ("" === t)
return this[r] = void 0,
void this.updateStyleEl_();
var n = parseFloat(t);
isNaN(n) ? Z.error('Improper value "' + t + '" supplied for for ' + e) : (this[r] = n,
this.updateStyleEl_())
}
,
h.prototype.fluid = function(e) {
if (void 0 === e)
return !!this.fluid_;
this.fluid_ = !!e,
e ? this.addClass("vjs-fluid") : this.removeClass("vjs-fluid"),
this.updateStyleEl_()
}
,
h.prototype.aspectRatio = function(e) {
if (void 0 === e)
return this.aspectRatio_;
if (!/^\d+\:\d+$/.test(e))
throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");
this.aspectRatio_ = e,
this.fluid(!0),
this.updateStyleEl_()
}
,
h.prototype.updateStyleEl_ = function() {
if (!0 !== p.VIDEOJS_NO_DYNAMIC_STYLE) {
var e = void 0
, t = void 0
, r = void 0
, n = (void 0 !== this.aspectRatio_ && "auto" !== this.aspectRatio_ ? this.aspectRatio_ : 0 < this.videoWidth() ? this.videoWidth() + ":" + this.videoHeight() : "16:9").split(":")
, i = n[1] / n[0];
e = void 0 !== this.width_ ? this.width_ : void 0 !== this.height_ ? this.height_ / i : this.videoWidth() || 300,
t = void 0 !== this.height_ ? this.height_ : e * i,
r = /^[^a-zA-Z]/.test(this.id()) ? "dimensions-" + this.id() : this.id() + "-dimensions",
this.addClass(r),
rt(this.styleEl_, "\n ." + r + " {\n width: " + e + "px;\n height: " + t + "px;\n }\n\n ." + r + ".vjs-fluid {\n padding-top: " + 100 * i + "%;\n }\n ")
} else {
var o = "number" == typeof this.width_ ? this.width_ : this.options_.width
, a = "number" == typeof this.height_ ? this.height_ : this.options_.height
, s = this.tech_ && this.tech_.el();
s && (0 <= o && (s.width = o),
0 <= a && (s.height = a))
}
}
,
h.prototype.loadTech_ = function(e, t) {
var r = this;
this.tech_ && this.unloadTech_();
var n = mt(e)
, i = e.charAt(0).toLowerCase() + e.slice(1);
"Html5" !== n && this.tag && (dr.getTech("Html5").disposeMediaElement(this.tag),
this.tag.player = null,
this.tag = null),
this.techName_ = n,
this.isReady_ = !1;
var o = {
source: t,
autoplay: "string" != typeof this.autoplay() && this.autoplay(),
nativeControlsForTouch: this.options_.nativeControlsForTouch,
playerId: this.id(),
techId: this.id() + "_" + n + "_api",
playsinline: this.options_.playsinline,
preload: this.options_.preload,
loop: this.options_.loop,
muted: this.options_.muted,
poster: this.poster(),
language: this.language(),
playerElIngest: this.playerElIngest_ || !1,
"vtt.js": this.options_["vtt.js"],
canOverridePoster: !!this.options_.techCanOverridePoster,
enableSourceset: this.options_.enableSourceset
};
hr.names.forEach(function(e) {
var t = hr[e];
o[t.getterName] = r[t.privateName]
}),
G(o, this.options_[n]),
G(o, this.options_[i]),
G(o, this.options_[e.toLowerCase()]),
this.tag && (o.tag = this.tag),
t && t.src === this.cache_.src && 0 < this.cache_.currentTime && (o.startTime = this.cache_.currentTime);
var a = dr.getTech(e);
if (!a)
throw new Error("No Tech named '" + n + "' exists! '" + n + "' should be registered using videojs.registerTech()'");
this.tech_ = new a(o),
this.tech_.ready(nt(this, this.handleTechReady_), !0),
Nt(this.textTracksJson_ || [], this.tech_),
ai.forEach(function(e) {
r.on(r.tech_, e, r["handleTech" + mt(e) + "_"])
}),
Object.keys(si).forEach(function(t) {
r.on(r.tech_, t, function(e) {
0 === r.tech_.playbackRate() && r.tech_.seeking() ? r.queuedCallbacks_.push({
callback: r["handleTech" + si[t] + "_"].bind(r),
event: e
}) : r["handleTech" + si[t] + "_"](e)
})
}),
this.on(this.tech_, "loadstart", this.handleTechLoadStart_),
this.on(this.tech_, "sourceset", this.handleTechSourceset_),
this.on(this.tech_, "waiting", this.handleTechWaiting_),
this.on(this.tech_, "ended", this.handleTechEnded_),
this.on(this.tech_, "seeking", this.handleTechSeeking_),
this.on(this.tech_, "play", this.handleTechPlay_),
this.on(this.tech_, "firstplay", this.handleTechFirstPlay_),
this.on(this.tech_, "pause", this.handleTechPause_),
this.on(this.tech_, "durationchange", this.handleTechDurationChange_),
this.on(this.tech_, "fullscreenchange", this.handleTechFullscreenChange_),
this.on(this.tech_, "error", this.handleTechError_),
this.on(this.tech_, "loadedmetadata", this.updateStyleEl_),
this.on(this.tech_, "posterchange", this.handleTechPosterChange_),
this.on(this.tech_, "textdata", this.handleTechTextData_),
this.on(this.tech_, "ratechange", this.handleTechRateChange_),
this.usingNativeControls(this.techGet_("controls")),
this.controls() && !this.usingNativeControls() && this.addTechControlsListeners_(),
this.tech_.el().parentNode === this.el() || "Html5" === n && this.tag || ce(this.tech_.el(), this.el()),
this.tag && (this.tag.player = null,
this.tag = null)
}
,
h.prototype.unloadTech_ = function() {
var r = this;
hr.names.forEach(function(e) {
var t = hr[e];
r[t.privateName] = r[t.getterName]()
}),
this.textTracksJson_ = Rt(this.tech_),
this.isReady_ = !1,
this.tech_.dispose(),
this.tech_ = !1,
this.isPosterFromTech_ && (this.poster_ = "",
this.trigger("posterchange")),
this.isPosterFromTech_ = !1
}
,
h.prototype.tech = function(e) {
return void 0 === e && Z.warn(d(oi)),
this.tech_
}
,
h.prototype.addTechControlsListeners_ = function() {
this.removeTechControlsListeners_(),
this.on(this.tech_, "mousedown", this.handleTechClick_),
this.on(this.tech_, "touchstart", this.handleTechTouchStart_),
this.on(this.tech_, "touchmove", this.handleTechTouchMove_),
this.on(this.tech_, "touchend", this.handleTechTouchEnd_),
this.on(this.tech_, "tap", this.handleTechTap_)
}
,
h.prototype.removeTechControlsListeners_ = function() {
this.off(this.tech_, "tap", this.handleTechTap_),
this.off(this.tech_, "touchstart", this.handleTechTouchStart_),
this.off(this.tech_, "touchmove", this.handleTechTouchMove_),
this.off(this.tech_, "touchend", this.handleTechTouchEnd_),
this.off(this.tech_, "mousedown", this.handleTechClick_)
}
,
h.prototype.handleTechReady_ = function() {
if (this.triggerReady(),
this.cache_.volume && this.techCall_("setVolume", this.cache_.volume),
this.handleTechPosterChange_(),
this.handleTechDurationChange_(),
(this.src() || this.currentSrc()) && this.tag && this.options_.autoplay && this.paused())
try {
delete this.tag.poster
} catch (e) {
Z("deleting tag.poster throws in some browsers", e)
}
}
,
h.prototype.handleTechLoadStart_ = function() {
this.removeClass("vjs-ended"),
this.removeClass("vjs-seeking"),
this.error(null),
this.paused() ? (this.hasStarted(!1),
this.trigger("loadstart")) : (this.trigger("loadstart"),
this.trigger("firstplay")),
this.manualAutoplay_(this.autoplay())
}
,
h.prototype.manualAutoplay_ = function(t) {
var r = this;
if (this.tech_ && "string" == typeof t) {
var e = function() {
var t = r.muted();
r.muted(!0);
var e = r.play();
if (e && e.then && e.catch)
return e.catch(function(e) {
r.muted(t)
})
}
, n = void 0;
if ("any" === t ? (n = this.play()) && n.then && n.catch && n.catch(function() {
return e()
}) : n = "muted" === t ? e() : this.play(),
n && n.then && n.catch)
return n.then(function() {
r.trigger({
type: "autoplay-success",
autoplay: t
})
}).catch(function(e) {
r.trigger({
type: "autoplay-failure",
autoplay: t
})
})
}
}
,
h.prototype.updateSourceCaches_ = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ""
, t = e
, r = "";
if ("string" != typeof t && (t = e.src,
r = e.type),
!/^blob:/.test(t)) {
this.cache_.source = this.cache_.source || {},
this.cache_.sources = this.cache_.sources || [],
t && !r && (r = function(e, t) {
if (!t)
return "";
if (e.cache_.source.src === t && e.cache_.source.type)
return e.cache_.source.type;
var r = e.cache_.sources.filter(function(e) {
return e.src === t
});
if (r.length)
return r[0].type;
for (var n = e.$$("source"), i = 0; i < n.length; i++) {
var o = n[i];
if (o.type && o.src && o.src === t)
return o.type
}
return Sr(t)
}(this, t)),
this.cache_.source = _t({}, e, {
src: t,
type: r
});
for (var n = this.cache_.sources.filter(function(e) {
return e.src && e.src === t
}), i = [], o = this.$$("source"), a = [], s = 0; s < o.length; s++) {
var l = ye(o[s]);
i.push(l),
l.src && l.src === t && a.push(l.src)
}
a.length && !n.length ? this.cache_.sources = i : n.length || (this.cache_.sources = [this.cache_.source]),
this.cache_.src = t
}
}
,
h.prototype.handleTechSourceset_ = function(e) {
var r = this;
if (!this.changingSrc_ && (this.updateSourceCaches_(e.src),
!e.src)) {
this.tech_.one(["sourceset", "loadstart"], function e(t) {
"sourceset" !== t.type && r.updateSourceCaches_(r.techGet_("currentSrc")),
r.tech_.off(["sourceset", "loadstart"], e)
})
}
this.trigger({
src: e.src,
type: "sourceset"
})
}
,
h.prototype.hasStarted = function(e) {
if (void 0 === e)
return this.hasStarted_;
e !== this.hasStarted_ && (this.hasStarted_ = e,
this.hasStarted_ ? (this.addClass("vjs-has-started"),
this.trigger("firstplay")) : this.removeClass("vjs-has-started"))
}
,
h.prototype.handleTechPlay_ = function() {
this.removeClass("vjs-ended"),
this.removeClass("vjs-paused"),
this.addClass("vjs-playing"),
this.hasStarted(!0),
this.trigger("play")
}
,
h.prototype.handleTechRateChange_ = function() {
0 < this.tech_.playbackRate() && 0 === this.cache_.lastPlaybackRate && (this.queuedCallbacks_.forEach(function(e) {
return e.callback(e.event)
}),
this.queuedCallbacks_ = []),
this.cache_.lastPlaybackRate = this.tech_.playbackRate(),
this.trigger("ratechange")
}
,
h.prototype.handleTechWaiting_ = function() {
var e = this;
this.addClass("vjs-waiting"),
this.trigger("waiting"),
this.one("timeupdate", function() {
return e.removeClass("vjs-waiting")
})
}
,
h.prototype.handleTechCanPlay_ = function() {
this.removeClass("vjs-waiting"),
this.trigger("canplay")
}
,
h.prototype.handleTechCanPlayThrough_ = function() {
this.removeClass("vjs-waiting"),
this.trigger("canplaythrough")
}
,
h.prototype.handleTechPlaying_ = function() {
this.removeClass("vjs-waiting"),
this.trigger("playing")
}
,
h.prototype.handleTechSeeking_ = function() {
this.addClass("vjs-seeking"),
this.trigger("seeking")
}
,
h.prototype.handleTechSeeked_ = function() {
this.removeClass("vjs-seeking"),
this.trigger("seeked")
}
,
h.prototype.handleTechFirstPlay_ = function() {
this.options_.starttime && (Z.warn("Passing the `starttime` option to the player will be deprecated in 6.0"),
this.currentTime(this.options_.starttime)),
this.addClass("vjs-has-started"),
this.trigger("firstplay")
}
,
h.prototype.handleTechPause_ = function() {
this.removeClass("vjs-playing"),
this.addClass("vjs-paused"),
this.trigger("pause")
}
,
h.prototype.handleTechEnded_ = function() {
this.addClass("vjs-ended"),
this.options_.loop ? (this.currentTime(0),
this.play()) : this.paused() || this.pause(),
this.trigger("ended")
}
,
h.prototype.handleTechDurationChange_ = function() {
this.duration(this.techGet_("duration"))
}
,
h.prototype.handleTechClick_ = function(e) {
Oe(e) && this.controls_ && (this.paused() ? Dt(this.play()) : this.pause())
}
,
h.prototype.handleTechTap_ = function() {
this.userActive(!this.userActive())
}
,
h.prototype.handleTechTouchStart_ = function() {
this.userWasActive = this.userActive()
}
,
h.prototype.handleTechTouchMove_ = function() {
this.userWasActive && this.reportUserActivity()
}
,
h.prototype.handleTechTouchEnd_ = function(e) {
e.preventDefault()
}
,
h.prototype.handleFullscreenChange_ = function() {
this.isFullscreen() ? this.addClass("vjs-fullscreen") : this.removeClass("vjs-fullscreen")
}
,
h.prototype.handleStageClick_ = function() {
this.reportUserActivity()
}
,
h.prototype.handleTechFullscreenChange_ = function(e, t) {
t && this.isFullscreen(t.isFullscreen),
this.trigger("fullscreenchange")
}
,
h.prototype.handleTechError_ = function() {
var e = this.tech_.error();
this.error(e)
}
,
h.prototype.handleTechTextData_ = function() {
var e = null;
1 < arguments.length && (e = arguments[1]),
this.trigger("textdata", e)
}
,
h.prototype.getCache = function() {
return this.cache_
}
,
h.prototype.techCall_ = function(i, o) {
this.ready(function() {
if (i in gr)
return e = this.middleware_,
t = this.tech_,
n = o,
t[r = i](e.reduce(Tr(r), n));
if (i in br)
return mr(this.middleware_, this.tech_, i, o);
var e, t, r, n;
try {
this.tech_ && this.tech_[i](o)
} catch (e) {
throw Z(e),
e
}
}, !0)
}
,
h.prototype.techGet_ = function(t) {
if (this.tech_ && this.tech_.isReady_) {
if (t in _r)
return e = this.middleware_,
r = this.tech_,
n = t,
e.reduceRight(Tr(n), r[n]());
if (t in br)
return mr(this.middleware_, this.tech_, t);
var e, r, n;
try {
return this.tech_[t]()
} catch (e) {
if (void 0 === this.tech_[t])
throw Z("Video.js: " + t + " method not defined for " + this.techName_ + " playback technology.", e),
e;
if ("TypeError" === e.name)
throw Z("Video.js: " + t + " unavailable on " + this.techName_ + " playback technology element.", e),
this.tech_.isReady_ = !1,
e;
throw Z(e),
e
}
}
}
,
h.prototype.play = function() {
var t = this
, e = this.options_.Promise || p.Promise;
return e ? new e(function(e) {
t.play_(e)
}
) : this.play_()
}
,
h.prototype.play_ = function() {
var e = this
, t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Dt;
if (this.playOnLoadstart_ && this.off("loadstart", this.playOnLoadstart_),
this.isReady_) {
if (!this.changingSrc_ && (this.src() || this.currentSrc()))
return void t(this.techGet_("play"));
this.playOnLoadstart_ = function() {
e.playOnLoadstart_ = null,
t(e.play())
}
,
this.one("loadstart", this.playOnLoadstart_)
} else {
if (this.playWaitingForReady_)
return;
this.playWaitingForReady_ = !0,
this.ready(function() {
e.playWaitingForReady_ = !1,
t(e.play())
})
}
}
,
h.prototype.pause = function() {
this.techCall_("pause")
}
,
h.prototype.paused = function() {
return !1 !== this.techGet_("paused")
}
,
h.prototype.played = function() {
return this.techGet_("played") || wt(0, 0)
}
,
h.prototype.scrubbing = function(e) {
if (void 0 === e)
return this.scrubbing_;
this.scrubbing_ = !!e,
e ? this.addClass("vjs-scrubbing") : this.removeClass("vjs-scrubbing")
}
,
h.prototype.currentTime = function(e) {
return void 0 !== e ? (e < 0 && (e = 0),
void this.techCall_("setCurrentTime", e)) : (this.cache_.currentTime = this.techGet_("currentTime") || 0,
this.cache_.currentTime)
}
,
h.prototype.duration = function(e) {
if (void 0 === e)
return void 0 !== this.cache_.duration ? this.cache_.duration : NaN;
(e = parseFloat(e)) < 0 && (e = 1 / 0),
e !== this.cache_.duration && ((this.cache_.duration = e) === 1 / 0 ? this.addClass("vjs-live") : this.removeClass("vjs-live"),
this.trigger("durationchange"))
}
,
h.prototype.remainingTime = function() {
return this.duration() - this.currentTime()
}
,
h.prototype.remainingTimeDisplay = function() {
return Math.floor(this.duration()) - Math.floor(this.currentTime())
}
,
h.prototype.buffered = function() {
var e = this.techGet_("buffered");
return e && e.length || (e = wt(0, 0)),
e
}
,
h.prototype.bufferedPercent = function() {
return kt(this.buffered(), this.duration())
}
,
h.prototype.bufferedEnd = function() {
var e = this.buffered()
, t = this.duration()
, r = e.end(e.length - 1);
return t < r && (r = t),
r
}
,
h.prototype.volume = function(e) {
var t = void 0;
return void 0 !== e ? (t = Math.max(0, Math.min(1, parseFloat(e))),
this.cache_.volume = t,
this.techCall_("setVolume", t),
void (0 < t && this.lastVolume_(t))) : (t = parseFloat(this.techGet_("volume")),
isNaN(t) ? 1 : t)
}
,
h.prototype.muted = function(e) {
if (void 0 === e)
return this.techGet_("muted") || !1;
this.techCall_("setMuted", e)
}
,
h.prototype.defaultMuted = function(e) {
return void 0 !== e ? this.techCall_("setDefaultMuted", e) : this.techGet_("defaultMuted") || !1
}
,
h.prototype.lastVolume_ = function(e) {
if (void 0 === e || 0 === e)
return this.cache_.lastVolume;
this.cache_.lastVolume = e
}
,
h.prototype.supportsFullScreen = function() {
return this.techGet_("supportsFullScreen") || !1
}
,
h.prototype.isFullscreen = function(e) {
if (void 0 === e)
return !!this.isFullscreen_;
this.isFullscreen_ = !!e
}
,
h.prototype.requestFullscreen = function() {
var r = St;
this.isFullscreen(!0),
r.requestFullscreen ? (Ge(f, r.fullscreenchange, nt(this, function e(t) {
this.isFullscreen(f[r.fullscreenElement]),
!1 === this.isFullscreen() && $e(f, r.fullscreenchange, e),
this.trigger("fullscreenchange")
})),
this.el_[r.requestFullscreen]()) : this.tech_.supportsFullScreen() ? this.techCall_("enterFullScreen") : (this.enterFullWindow(),
this.trigger("fullscreenchange"))
}
,
h.prototype.exitFullscreen = function() {
var e = St;
this.isFullscreen(!1),
e.requestFullscreen ? f[e.exitFullscreen]() : this.tech_.supportsFullScreen() ? this.techCall_("exitFullScreen") : (this.exitFullWindow(),
this.trigger("fullscreenchange"))
}
,
h.prototype.enterFullWindow = function() {
this.isFullWindow = !0,
this.docOrigOverflow = f.documentElement.style.overflow,
Ge(f, "keydown", nt(this, this.fullWindowOnEscKey)),
f.documentElement.style.overflow = "hidden",
de(f.body, "vjs-full-window"),
this.trigger("enterFullWindow")
}
,
h.prototype.fullWindowOnEscKey = function(e) {
27 === e.keyCode && (!0 === this.isFullscreen() ? this.exitFullscreen() : this.exitFullWindow())
}
,
h.prototype.exitFullWindow = function() {
this.isFullWindow = !1,
$e(f, "keydown", this.fullWindowOnEscKey),
f.documentElement.style.overflow = this.docOrigOverflow,
pe(f.body, "vjs-full-window"),
this.trigger("exitFullWindow")
}
,
h.prototype.canPlayType = function(e) {
for (var t = void 0, r = 0, n = this.options_.techOrder; r < n.length; r++) {
var i = n[r]
, o = dr.getTech(i);
if (o || (o = gt.getComponent(i)),
o) {
if (o.isSupported() && (t = o.canPlayType(e)))
return t
} else
Z.error('The "' + i + '" tech is undefined. Skipped browser support check for that tech.')
}
return ""
}
,
h.prototype.selectSource = function(e) {
var r, n = this, t = this.options_.techOrder.map(function(e) {
return [e, dr.getTech(e)]
}).filter(function(e) {
var t = e[0]
, r = e[1];
return r ? r.isSupported() : (Z.error('The "' + t + '" tech is undefined. Skipped browser support check for that tech.'),
!1)
}), i = function(e, r, n) {
var i = void 0;
return e.some(function(t) {
return r.some(function(e) {
if (i = n(t, e))
return !0
})
}),
i
}, o = function(e, t) {
var r = e[0];
if (e[1].canPlaySource(t, n.options_[r.toLowerCase()]))
return {
source: t,
tech: r
}
};
return (this.options_.sourceOrder ? i(e, t, (r = o,
function(e, t) {
return r(t, e)
}
)) : i(t, e, o)) || !1
}
,
h.prototype.src = function(e) {
var i = this;
if (void 0 === e)
return this.cache_.src || "";
var o = function t(e) {
if (Array.isArray(e)) {
var r = [];
e.forEach(function(e) {
e = t(e),
Array.isArray(e) ? r = r.concat(e) : $(e) && r.push(e)
}),
e = r
} else
e = "string" == typeof e && e.trim() ? [Cr({
src: e
})] : $(e) && "string" == typeof e.src && e.src && e.src.trim() ? [Cr(e)] : [];
return e
}(e);
o.length ? (this.changingSrc_ = !0,
this.cache_.sources = o,
this.updateSourceCaches_(o[0]),
yr(this, o[0], function(e, t) {
var r, n;
if (i.middleware_ = t,
i.cache_.sources = o,
i.updateSourceCaches_(e),
i.src_(e))
return 1 < o.length ? i.src(o.slice(1)) : (i.changingSrc_ = !1,
i.setTimeout(function() {
this.error({
code: 4,
message: this.localize(this.options_.notSupportedMessage)
})
}, 0),
void i.triggerReady());
r = t,
n = i.tech_,
r.forEach(function(e) {
return e.setTech && e.setTech(n)
})
})) : this.setTimeout(function() {
this.error({
code: 4,
message: this.localize(this.options_.notSupportedMessage)
})
}, 0)
}
,
h.prototype.src_ = function(e) {
var t, r, n = this, i = this.selectSource([e]);
return !i || (t = i.tech,
r = this.techName_,
mt(t) !== mt(r) ? (this.changingSrc_ = !0,
this.loadTech_(i.tech, i.source),
this.tech_.ready(function() {
n.changingSrc_ = !1
})) : this.ready(function() {
this.tech_.constructor.prototype.hasOwnProperty("setSource") ? this.techCall_("setSource", e) : this.techCall_("src", e.src),
this.changingSrc_ = !1
}, !0),
!1)
}
,
h.prototype.load = function() {
this.techCall_("load")
}
,
h.prototype.reset = function() {
this.tech_ && this.tech_.clearTracks("text"),
this.loadTech_(this.options_.techOrder[0], null),
this.techCall_("reset")
}
,
h.prototype.currentSources = function() {
var e = this.currentSource()
, t = [];
return 0 !== Object.keys(e).length && t.push(e),
this.cache_.sources || t
}
,
h.prototype.currentSource = function() {
return this.cache_.source || {}
}
,
h.prototype.currentSrc = function() {
return this.currentSource() && this.currentSource().src || ""
}
,
h.prototype.currentType = function() {
return this.currentSource() && this.currentSource().type || ""
}
,
h.prototype.preload = function(e) {
return void 0 !== e ? (this.techCall_("setPreload", e),
void (this.options_.preload = e)) : this.techGet_("preload")
}
,
h.prototype.autoplay = function(e) {
if (void 0 === e)
return this.options_.autoplay || !1;
var t = void 0;
"string" == typeof e && /(any|play|muted)/.test(e) ? (this.options_.autoplay = e,
this.manualAutoplay_(e),
t = !1) : this.options_.autoplay = !!e,
t = t || this.options_.autoplay,
this.tech_ && this.techCall_("setAutoplay", t)
}
,
h.prototype.playsinline = function(e) {
return void 0 !== e ? (this.techCall_("setPlaysinline", e),
this.options_.playsinline = e,
this) : this.techGet_("playsinline")
}
,
h.prototype.loop = function(e) {
return void 0 !== e ? (this.techCall_("setLoop", e),
void (this.options_.loop = e)) : this.techGet_("loop")
}
,
h.prototype.poster = function(e) {
if (void 0 === e)
return this.poster_;
e || (e = ""),
e !== this.poster_ && (this.poster_ = e,
this.techCall_("setPoster", e),
this.isPosterFromTech_ = !1,
this.trigger("posterchange"))
}
,
h.prototype.handleTechPosterChange_ = function() {
if ((!this.poster_ || this.options_.techCanOverridePoster) && this.tech_ && this.tech_.poster) {
var e = this.tech_.poster() || "";
e !== this.poster_ && (this.poster_ = e,
this.isPosterFromTech_ = !0,
this.trigger("posterchange"))
}
}
,
h.prototype.controls = function(e) {
if (void 0 === e)
return !!this.controls_;
e = !!e,
this.controls_ !== e && (this.controls_ = e,
this.usingNativeControls() && this.techCall_("setControls", e),
this.controls_ ? (this.removeClass("vjs-controls-disabled"),
this.addClass("vjs-controls-enabled"),
this.trigger("controlsenabled"),
this.usingNativeControls() || this.addTechControlsListeners_()) : (this.removeClass("vjs-controls-enabled"),
this.addClass("vjs-controls-disabled"),
this.trigger("controlsdisabled"),
this.usingNativeControls() || this.removeTechControlsListeners_()))
}
,
h.prototype.usingNativeControls = function(e) {
if (void 0 === e)
return !!this.usingNativeControls_;
e = !!e,
this.usingNativeControls_ !== e && (this.usingNativeControls_ = e,
this.usingNativeControls_ ? (this.addClass("vjs-using-native-controls"),
this.trigger("usingnativecontrols")) : (this.removeClass("vjs-using-native-controls"),
this.trigger("usingcustomcontrols")))
}
,
h.prototype.error = function(e) {
return void 0 === e ? this.error_ || null : null === e ? (this.error_ = e,
this.removeClass("vjs-error"),
void (this.errorDisplay && this.errorDisplay.close())) : (this.error_ = new Ot(e),
this.addClass("vjs-error"),
Z.error("(CODE:" + this.error_.code + " " + Ot.errorTypes[this.error_.code] + ")", this.error_.message, this.error_),
void this.trigger("error"))
}
,
h.prototype.reportUserActivity = function(e) {
this.userActivity_ = !0
}
,
h.prototype.userActive = function(e) {
if (void 0 === e)
return this.userActive_;
if ((e = !!e) !== this.userActive_) {
if (this.userActive_ = e,
this.userActive_)
return this.userActivity_ = !0,
this.removeClass("vjs-user-inactive"),
this.addClass("vjs-user-active"),
void this.trigger("useractive");
this.tech_ && this.tech_.one("mousemove", function(e) {
e.stopPropagation(),
e.preventDefault()
}),
this.userActivity_ = !1,
this.removeClass("vjs-user-active"),
this.addClass("vjs-user-inactive"),
this.trigger("userinactive")
}
}
,
h.prototype.listenForUserActivity_ = function() {
var t = void 0
, r = void 0
, n = void 0
, i = nt(this, this.reportUserActivity);
this.on("mousedown", function() {
i(),
this.clearInterval(t),
t = this.setInterval(i, 250)
}),
this.on("mousemove", function(e) {
e.screenX === r && e.screenY === n || (r = e.screenX,
n = e.screenY,
i())
}),
this.on("mouseup", function(e) {
i(),
this.clearInterval(t)
}),
this.on("keydown", i),
this.on("keyup", i);
var o = void 0;
this.setInterval(function() {
if (this.userActivity_) {
this.userActivity_ = !1,
this.userActive(!0),
this.clearTimeout(o);
var e = this.options_.inactivityTimeout;
e <= 0 || (o = this.setTimeout(function() {
this.userActivity_ || this.userActive(!1)
}, e))
}
}, 250)
}
,
h.prototype.playbackRate = function(e) {
if (void 0 === e)
return this.tech_ && this.tech_.featuresPlaybackRate ? this.cache_.lastPlaybackRate || this.techGet_("playbackRate") : 1;
this.techCall_("setPlaybackRate", e)
}
,
h.prototype.defaultPlaybackRate = function(e) {
return void 0 !== e ? this.techCall_("setDefaultPlaybackRate", e) : this.tech_ && this.tech_.featuresPlaybackRate ? this.techGet_("defaultPlaybackRate") : 1
}
,
h.prototype.isAudio = function(e) {
if (void 0 === e)
return !!this.isAudio_;
this.isAudio_ = !!e
}
,
h.prototype.addTextTrack = function(e, t, r) {
if (this.tech_)
return this.tech_.addTextTrack(e, t, r)
}
,
h.prototype.addRemoteTextTrack = function(e, t) {
if (this.tech_)
return this.tech_.addRemoteTextTrack(e, t)
}
,
h.prototype.removeRemoteTextTrack = function() {
var e = (0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}).track
, t = void 0 === e ? arguments[0] : e;
if (this.tech_)
return this.tech_.removeRemoteTextTrack(t)
}
,
h.prototype.getVideoPlaybackQuality = function() {
return this.techGet_("getVideoPlaybackQuality")
}
,
h.prototype.videoWidth = function() {
return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0
}
,
h.prototype.videoHeight = function() {
return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0
}
,
h.prototype.language = function(e) {
if (void 0 === e)
return this.language_;
this.language_ = String(e).toLowerCase()
}
,
h.prototype.languages = function() {
return _t(h.prototype.options_.languages, this.languages_)
}
,
h.prototype.toJSON = function() {
var e = _t(this.options_)
, t = e.tracks;
e.tracks = [];
for (var r = 0; r < t.length; r++) {
var n = t[r];
(n = _t(n)).player = void 0,
e.tracks[r] = n
}
return e
}
,
h.prototype.createModal = function(e, t) {
var r = this;
(t = t || {}).content = e || "";
var n = new Ft(this,t);
return this.addChild(n),
n.on("dispose", function() {
r.removeChild(n)
}),
n.open(),
n
}
,
h.getTagSettings = function(e) {
var t = {
sources: [],
tracks: []
}
, r = ye(e)
, n = r["data-setup"];
if (he(e, "vjs-fluid") && (r.fluid = !0),
null !== n) {
var i = v(n || "{}")
, o = i[0]
, a = i[1];
o && Z.error(o),
G(r, a)
}
if (G(t, r),
e.hasChildNodes())
for (var s = e.childNodes, l = 0, u = s.length; l < u; l++) {
var c = s[l]
, h = c.nodeName.toLowerCase();
"source" === h ? t.sources.push(ye(c)) : "track" === h && t.tracks.push(ye(c))
}
return t
}
,
h.prototype.flexNotSupported_ = function() {
var e = f.createElement("i");
return !("flexBasis"in e.style || "webkitFlexBasis"in e.style || "mozFlexBasis"in e.style || "msFlexBasis"in e.style || "msFlexOrder"in e.style)
}
,
h
}(gt);
hr.names.forEach(function(e) {
var t = hr[e];
li.prototype[t.getterName] = function() {
return this.tech_ ? this.tech_[t.getterName]() : (this[t.privateName] = this[t.privateName] || new t.ListClass,
this[t.privateName])
}
}),
li.players = {};
var ui = p.navigator;
li.prototype.options_ = {
techOrder: dr.defaultTechOrder_,
html5: {},
flash: {},
inactivityTimeout: 2e3,
playbackRates: [],
children: ["mediaLoader", "posterImage", "textTrackDisplay", "loadingSpinner", "bigPlayButton", "controlBar", "errorDisplay", "textTrackSettings"],
language: ui && (ui.languages && ui.languages[0] || ui.userLanguage || ui.language) || "en",
languages: {},
notSupportedMessage: "No compatible source was found for this media."
},
A || li.prototype.options_.children.push("resizeManager"),
["ended", "seeking", "seekable", "networkState", "readyState"].forEach(function(e) {
li.prototype[e] = function() {
return this.techGet_(e)
}
}),
ai.forEach(function(e) {
li.prototype["handleTech" + mt(e) + "_"] = function() {
return this.trigger(e)
}
}),
gt.registerComponent("Player", li);
var ci = "plugin"
, hi = "activePlugins_"
, di = {}
, pi = function(e) {
return di.hasOwnProperty(e)
}
, fi = function(e) {
return pi(e) ? di[e] : void 0
}
, vi = function(e, t) {
e[hi] = e[hi] || {},
e[hi][t] = !0
}
, yi = function(e, t, r) {
var n = (r ? "before" : "") + "pluginsetup";
e.trigger(n, t),
e.trigger(n + ":" + t.name, t)
}
, mi = function(i, o) {
return o.prototype.name = i,
function() {
yi(this, {
name: i,
plugin: o,
instance: null
}, !0);
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
var n = new (Function.prototype.bind.apply(o, [null].concat([this].concat(t))));
return this[i] = function() {
return n
}
,
yi(this, n.getEventHash()),
n
}
}
, _i = function() {
function o(e) {
if (B(this, o),
this.constructor === o)
throw new Error("Plugin must be sub-classed; not directly instantiated.");
this.player = e,
ft(this),
delete this.trigger,
yt(this, this.constructor.defaultState),
vi(e, this.name),
this.dispose = nt(this, this.dispose),
e.on("dispose", this.dispose)
}
return o.prototype.version = function() {
return this.constructor.VERSION
}
,
o.prototype.getEventHash = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
return e.name = this.name,
e.plugin = this.constructor,
e.instance = this,
e
}
,
o.prototype.trigger = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
return Ke(this.eventBusEl_, e, this.getEventHash(t))
}
,
o.prototype.handleStateChanged = function(e) {}
,
o.prototype.dispose = function() {
var e = this.name
, t = this.player;
this.trigger("dispose"),
this.off(),
t.off("dispose", this.dispose),
t[hi][e] = !1,
this.player = this.state = null,
t[e] = mi(e, di[e])
}
,
o.isBasic = function(e) {
var t = "string" == typeof e ? fi(e) : e;
return "function" == typeof t && !o.prototype.isPrototypeOf(t.prototype)
}
,
o.registerPlugin = function(e, t) {
if ("string" != typeof e)
throw new Error('Illegal plugin name, "' + e + '", must be a string, was ' + (void 0 === e ? "undefined" : F(e)) + ".");
if (pi(e))
Z.warn('A plugin named "' + e + '" already exists. You may want to avoid re-registering plugins!');
else if (li.prototype.hasOwnProperty(e))
throw new Error('Illegal plugin name, "' + e + '", cannot share a name with an existing player method!');
if ("function" != typeof t)
throw new Error('Illegal plugin for "' + e + '", must be a function, was ' + (void 0 === t ? "undefined" : F(t)) + ".");
var r, n, i;
return di[e] = t,
e !== ci && (o.isBasic(t) ? li.prototype[e] = (r = e,
n = t,
i = function() {
yi(this, {
name: r,
plugin: n,
instance: null
}, !0);
var e = n.apply(this, arguments);
return vi(this, r),
yi(this, {
name: r,
plugin: n,
instance: e
}),
e
}
,
Object.keys(n).forEach(function(e) {
i[e] = n[e]
}),
i) : li.prototype[e] = mi(e, t)),
t
}
,
o.deregisterPlugin = function(e) {
if (e === ci)
throw new Error("Cannot de-register base plugin.");
pi(e) && (delete di[e],
delete li.prototype[e])
}
,
o.getPlugins = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Object.keys(di)
, r = void 0;
return e.forEach(function(e) {
var t = fi(e);
t && ((r = r || {})[e] = t)
}),
r
}
,
o.getPluginVersion = function(e) {
var t = fi(e);
return t && t.VERSION || ""
}
,
o
}();
_i.getPlugin = fi,
_i.BASE_PLUGIN_NAME = ci,
_i.registerPlugin(ci, _i),
li.prototype.usingPlugin = function(e) {
return !!this[hi] && !0 === this[hi][e]
}
,
li.prototype.hasPlugin = function(e) {
return !!pi(e)
}
;
"undefined" == typeof HTMLVideoElement && ie() && (f.createElement("video"),
f.createElement("audio"),
f.createElement("track"),
f.createElement("video-js"));
var gi = function(e) {
return 0 === e.indexOf("#") ? e.slice(1) : e
};
function bi(e, r, t) {
var n = bi.getPlayer(e);
if (n)
return r && Z.warn('Player "' + e + '" is already initialised. Options will not be applied.'),
t && n.ready(t),
n;
var i = "string" == typeof e ? Ae("#" + gi(e)) : e;
if (!oe(i))
throw new TypeError("The element or ID supplied is not valid. (videojs)");
f.body.contains(i) || Z.warn("The element supplied is not included in the DOM"),
r = r || {},
bi.hooks("beforesetup").forEach(function(e) {
var t = e(i, _t(r));
$(t) && !Array.isArray(t) ? r = _t(r, t) : Z.error("please return an object in beforesetup hooks")
});
var o = gt.getComponent("Player");
return n = new o(i,r,t),
bi.hooks("setup").forEach(function(e) {
return e(n)
}),
n
}
if (bi.hooks_ = {},
bi.hooks = function(e, t) {
return bi.hooks_[e] = bi.hooks_[e] || [],
t && (bi.hooks_[e] = bi.hooks_[e].concat(t)),
bi.hooks_[e]
}
,
bi.hook = function(e, t) {
bi.hooks(e, t)
}
,
bi.hookOnce = function(r, e) {
bi.hooks(r, [].concat(e).map(function(t) {
return function e() {
return bi.removeHook(r, e),
t.apply(void 0, arguments)
}
}))
}
,
bi.removeHook = function(e, t) {
var r = bi.hooks(e).indexOf(t);
return !(r <= -1) && (bi.hooks_[e] = bi.hooks_[e].slice(),
bi.hooks_[e].splice(r, 1),
!0)
}
,
!0 !== p.VIDEOJS_NO_DYNAMIC_STYLE && ie()) {
var Ti = Ae(".vjs-styles-defaults");
if (!Ti) {
Ti = tt("vjs-styles-defaults");
var wi = Ae("head");
wi && wi.insertBefore(Ti, wi.firstChild),
rt(Ti, "\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")
}
}
et(1, bi),
bi.VERSION = m,
bi.options = li.prototype.options_,
bi.getPlayers = function() {
return li.players
}
,
bi.getPlayer = function(e) {
var t = li.players
, r = void 0;
if ("string" == typeof e) {
var n = gi(e)
, i = t[n];
if (i)
return i;
r = Ae("#" + n)
} else
r = e;
if (oe(r)) {
var o = r
, a = o.player
, s = o.playerId;
if (a || t[s])
return a || t[s]
}
}
,
bi.getAllPlayers = function() {
return Object.keys(li.players).map(function(e) {
return li.players[e]
}).filter(Boolean)
}
,
bi.players = li.players,
bi.getComponent = gt.getComponent,
bi.registerComponent = function(e, t) {
dr.isTech(t) && Z.warn("The " + e + " tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"),
gt.registerComponent.call(gt, e, t)
}
,
bi.getTech = dr.getTech,
bi.registerTech = dr.registerTech,
bi.use = function(e, t) {
pr[e] = pr[e] || [],
pr[e].push(t)
}
,
!A && Object.defineProperty ? (Object.defineProperty(bi, "middleware", {
value: {},
writeable: !1,
enumerable: !0
}),
Object.defineProperty(bi.middleware, "TERMINATOR", {
value: vr,
writeable: !1,
enumerable: !0
})) : bi.middleware = {
TERMINATOR: vr
},
bi.browser = L,
bi.TOUCH_ENABLED = R,
bi.extend = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}
, r = function() {
e.apply(this, arguments)
}
, n = {};
for (var i in "object" === (void 0 === t ? "undefined" : F(t)) ? (t.constructor !== Object.prototype.constructor && (r = t.constructor),
n = t) : "function" == typeof t && (r = t),
function(e, t) {
if ("function" != typeof t && null !== t)
throw new TypeError("Super expression must either be null or a function, not " + (void 0 === t ? "undefined" : F(t)));
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}),
t && (e.super_ = t)
}(r, e),
n)
n.hasOwnProperty(i) && (r.prototype[i] = n[i]);
return r
}
,
bi.mergeOptions = _t,
bi.bind = nt,
bi.registerPlugin = _i.registerPlugin,
bi.deregisterPlugin = _i.deregisterPlugin,
bi.plugin = function(e, t) {
return Z.warn("videojs.plugin() is deprecated; use videojs.registerPlugin() instead"),
_i.registerPlugin(e, t)
}
,
bi.getPlugins = _i.getPlugins,
bi.getPlugin = _i.getPlugin,
bi.getPluginVersion = _i.getPluginVersion,
bi.addLanguage = function(e, t) {
var r;
return e = ("" + e).toLowerCase(),
bi.options.languages = _t(bi.options.languages, ((r = {})[e] = t,
r)),
bi.options.languages[e]
}
,
bi.log = Z,
bi.createTimeRange = bi.createTimeRanges = wt,
bi.formatTime = qr,
bi.setFormatTime = function(e) {
Hr = e
}
,
bi.resetFormatTime = function() {
Hr = Br
}
,
bi.parseUrl = Zt,
bi.isCrossOrigin = rr,
bi.EventTarget = ot,
bi.on = Ge,
bi.one = Xe,
bi.off = $e,
bi.trigger = Ke,
bi.xhr = y,
bi.TextTrack = or,
bi.AudioTrack = ar,
bi.VideoTrack = sr,
["isEl", "isTextNode", "createEl", "hasClass", "addClass", "removeClass", "toggleClass", "setAttributes", "getAttributes", "emptyEl", "appendContent", "insertContent"].forEach(function(e) {
bi[e] = function() {
return Z.warn("videojs." + e + "() is deprecated; use videojs.dom." + e + "() instead"),
De[e].apply(null, arguments)
}
}),
bi.computedStyle = ee,
bi.dom = De,
bi.url = nr,
e.exports = bi
},
"./node_modules/videojs-flash/dist/videojs-flash.es.js": function(e, t, r) {
"use strict";
var n = r("./node_modules/video.js/dist/video.cjs.js")
, i = r.n(n)
, a = r("./node_modules/videojs-swf/package.json")
, o = r("./node_modules/global/window.js")
, s = r.n(o);
var l, u = i.a.getComponent("Tech"), c = i.a.dom, h = i.a.url, d = i.a.createTimeRange, p = i.a.mergeOptions, f = s.a && s.a.navigator || {}, v = function(n) {
function o(e, t) {
!function(e, t) {
if (!(e instanceof t))
throw new TypeError("Cannot call a class as a function")
}(this, o);
var r = function(e, t) {
if (!e)
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}(this, n.call(this, e, t));
return e.source && r.ready(function() {
this.setSource(e.source)
}, !0),
e.startTime && r.ready(function() {
this.load(),
this.play(),
this.currentTime(e.startTime)
}, !0),
s.a.videojs = s.a.videojs || {},
s.a.videojs.Flash = s.a.videojs.Flash || {},
s.a.videojs.Flash.onReady = o.onReady,
s.a.videojs.Flash.onEvent = o.onEvent,
s.a.videojs.Flash.onError = o.onError,
r.on("seeked", function() {
this.lastSeekTarget_ = void 0
}),
r
}
return function(e, t) {
if ("function" != typeof t && null !== t)
throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}(o, n),
o.prototype.createEl = function() {
var e = this.options_;
e.swf || (e.swf = "https://vjs.zencdn.net/swf/" + a.a + "/video-js.swf");
var t = e.techId
, r = p({
readyFunction: "videojs.Flash.onReady",
eventProxyFunction: "videojs.Flash.onEvent",
errorEventProxyFunction: "videojs.Flash.onError",
autoplay: e.autoplay,
preload: e.preload,
loop: e.loop,
muted: e.muted
}, e.flashVars)
, n = p({
wmode: "opaque",
bgcolor: "#000000"
}, e.params)
, i = p({
id: t,
name: t,
class: "vjs-tech"
}, e.attributes);
return this.el_ = o.embed(e.swf, r, n, i),
(this.el_.tech = this).el_
}
,
o.prototype.play = function() {
this.ended() && this.setCurrentTime(0),
this.el_.vjs_play()
}
,
o.prototype.pause = function() {
this.el_.vjs_pause()
}
,
o.prototype.src = function(e) {
return void 0 === e ? this.currentSrc() : this.setSrc(e)
}
,
o.prototype.setSrc = function(e) {
var t = this;
e = h.getAbsoluteURL(e),
this.el_.vjs_src(e),
this.autoplay() && this.setTimeout(function() {
return t.play()
}, 0)
}
,
o.prototype.seeking = function() {
return void 0 !== this.lastSeekTarget_
}
,
o.prototype.setCurrentTime = function(e) {
var t = this.seekable();
t.length && (e = (e = e > t.start(0) ? e : t.start(0)) < t.end(t.length - 1) ? e : t.end(t.length - 1),
this.lastSeekTarget_ = e,
this.trigger("seeking"),
this.el_.vjs_setProperty("currentTime", e),
n.prototype.setCurrentTime.call(this))
}
,
o.prototype.currentTime = function() {
return this.seeking() ? this.lastSeekTarget_ || 0 : this.el_.vjs_getProperty("currentTime")
}
,
o.prototype.currentSrc = function() {
return this.currentSource_ ? this.currentSource_.src : this.el_.vjs_getProperty("currentSrc")
}
,
o.prototype.duration = function() {
if (0 === this.readyState())
return NaN;
var e = this.el_.vjs_getProperty("duration");
return 0 <= e ? e : 1 / 0
}
,
o.prototype.load = function() {
this.el_.vjs_load()
}
,
o.prototype.poster = function() {
this.el_.vjs_getProperty("poster")
}
,
o.prototype.setPoster = function() {}
,
o.prototype.seekable = function() {
var e = this.duration();
return 0 === e ? d() : d(0, e)
}
,
o.prototype.buffered = function() {
var e = this.el_.vjs_getProperty("buffered");
return 0 === e.length ? d() : d(e[0][0], e[0][1])
}
,
o.prototype.supportsFullScreen = function() {
return !1
}
,
o.prototype.enterFullScreen = function() {
return !1
}
,
o.prototype.getVideoPlaybackQuality = function() {
var e = this.el_.vjs_getProperty("getVideoPlaybackQuality");
return s.a.performance && "function" == typeof s.a.performance.now ? e.creationTime = s.a.performance.now() : s.a.performance && s.a.performance.timing && "number" == typeof s.a.performance.timing.navigationStart && (e.creationTime = s.a.Date.now() - s.a.performance.timing.navigationStart),
e
}
,
o
}(u), y = ["rtmpConnection", "rtmpStream", "preload", "defaultPlaybackRate", "playbackRate", "autoplay", "loop", "controls", "volume", "muted", "defaultMuted"], m = ["networkState", "readyState", "initialTime", "startOffsetTime", "paused", "ended", "videoWidth", "videoHeight"], _ = v.prototype;
function g(t) {
var e = t.charAt(0).toUpperCase() + t.slice(1);
_["set" + e] = function(e) {
return this.el_.vjs_setProperty(t, e)
}
}
function b(e) {
_[e] = function() {
return this.el_.vjs_getProperty(e)
}
}
for (var T = 0; T < y.length; T++)
b(y[T]),
g(y[T]);
for (var w = 0; w < m.length; w++)
b(m[w]);
v.isSupported = function() {
return !!(i.a.browser.IS_CHROME && !i.a.browser.IS_ANDROID || i.a.browser.IS_SAFARI && !i.a.browser.IS_IOS || i.a.browser.IS_EDGE) || 10 <= v.version()[0]
}
,
u.withSourceHandlers(v),
v.nativeSourceHandler = {},
v.nativeSourceHandler.canPlayType = function(e) {
return e in v.formats ? "maybe" : ""
}
,
v.nativeSourceHandler.canHandleSource = function(e, t) {
var r, n, i = void 0;
return i = e.type ? e.type.replace(/;.*/, "").toLowerCase() : (r = e.src,
(n = h.getFileExtension(r)) ? "video/" + n : ""),
v.nativeSourceHandler.canPlayType(i)
}
,
v.nativeSourceHandler.handleSource = function(e, t, r) {
t.setSrc(e.src)
}
,
v.nativeSourceHandler.dispose = function() {}
,
v.registerSourceHandler(v.nativeSourceHandler),
v.formats = {
"video/flv": "FLV",
"video/x-flv": "FLV",
"video/mp4": "MP4",
"video/m4v": "MP4"
},
v.onReady = function(e) {
var t = c.$("#" + e)
, r = t && t.tech;
r && r.el() && v.checkReady(r)
}
,
v.checkReady = function(e) {
e.el() && (e.el().vjs_getProperty ? e.triggerReady() : this.setTimeout(function() {
v.checkReady(e)
}, 50))
}
,
v.onEvent = function(e, t) {
var r = c.$("#" + e).tech
, n = Array.prototype.slice.call(arguments, 2);
r.setTimeout(function() {
r.trigger(t, n)
}, 1)
}
,
v.onError = function(e, t) {
var r = c.$("#" + e).tech;
if ("srcnotfound" === t)
return r.error(4);
"string" == typeof t ? r.error("FLASH: " + t) : (t.origin = "flash",
r.error(t))
}
,
v.version = function() {
var t = "0,0,0";
try {
t = new s.a.ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g, ",").match(/^,?(.+),?$/)[1]
} catch (e) {
try {
f.mimeTypes["application/x-shockwave-flash"].enabledPlugin && (t = (f.plugins["Shockwave Flash 2.0"] || f.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1])
} catch (e) {}
}
return t.split(",")
}
,
v.embed = function(e, t, r, n) {
var i = v.getEmbedCode(e, t, r, n);
return c.createEl("div", {
innerHTML: i
}).childNodes[0]
}
,
v.getEmbedCode = function(e, t, r, n) {
var i = ""
, o = ""
, a = "";
return t && Object.getOwnPropertyNames(t).forEach(function(e) {
i += e + "=" + t[e] + "&amp;"
}),
r = p({
movie: e,
flashvars: i,
allowScriptAccess: "always",
allowNetworking: "all"
}, r),
Object.getOwnPropertyNames(r).forEach(function(e) {
o += '<param name="' + e + '" value="' + r[e] + '" />'
}),
n = p({
data: e,
width: "100%",
height: "100%"
}, n),
Object.getOwnPropertyNames(n).forEach(function(e) {
a += e + '="' + n[e] + '" '
}),
'<object type="application/x-shockwave-flash" ' + a + ">" + o + "</object>"
}
,
(l = v).streamingFormats = {
"rtmp/mp4": "MP4",
"rtmp/flv": "FLV"
},
l.streamFromParts = function(e, t) {
return e + "&" + t
}
,
l.streamToParts = function(e) {
var t = {
connection: "",
stream: ""
};
if (!e)
return t;
var r = e.search(/&(?![\w-]+=)/)
, n = void 0;
return -1 !== r ? n = r + 1 : 0 === (r = n = e.lastIndexOf("/") + 1) && (r = n = e.length),
t.connection = e.substring(0, r),
t.stream = e.substring(n, e.length),
t
}
,
l.isStreamingType = function(e) {
return e in l.streamingFormats
}
,
l.RTMP_RE = /^rtmp[set]?:\/\//i,
l.isStreamingSrc = function(e) {
return l.RTMP_RE.test(e)
}
,
l.rtmpSourceHandler = {},
l.rtmpSourceHandler.canPlayType = function(e) {
return l.isStreamingType(e) ? "maybe" : ""
}
,
l.rtmpSourceHandler.canHandleSource = function(e, t) {
var r = l.rtmpSourceHandler.canPlayType(e.type);
return r || (l.isStreamingSrc(e.src) ? "maybe" : "")
}
,
l.rtmpSourceHandler.handleSource = function(e, t, r) {
var n = l.streamToParts(e.src);
t.setRtmpConnection(n.connection),
t.setRtmpStream(n.stream)
}
,
l.registerSourceHandler(l.rtmpSourceHandler),
u.getTech("Flash") ? (i.a.log.warn("Not using videojs-flash as it appears to already be registered"),
i.a.log.warn("videojs-flash should only be used with video.js@6 and above")) : i.a.registerTech("Flash", v),
v.VERSION = "2.2.0"
},
"./node_modules/videojs-mux/dist/videojs-mux.js": function(N1, O1, P1) {
var W1, Q1 = Q1 || {};
Q1.js = P1("./node_modules/video.js/dist/video.cjs.js"),
N1.exports = (W1 = P1("./node_modules/video.js/dist/video.cjs.js"),
function(r) {
function n(e) {
if (i[e])
return i[e].exports;
var t = i[e] = {
i: e,
l: !1,
exports: {}
};
return r[e].call(t.exports, t, t.exports, n),
t.l = !0,
t.exports
}
var i = {};
return n.m = r,
n.c = i,
n.d = function(e, t, r) {
n.o(e, t) || Object.defineProperty(e, t, {
configurable: !1,
enumerable: !0,
get: 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 = 2)
}([function(h2, i2, j2) {
h2.exports = function(r) {
function n(e) {
if (i[e])
return i[e].exports;
var t = i[e] = {
i: e,
l: !1,
exports: {}
};
return r[e].call(t.exports, t, t.exports, n),
t.l = !0,
t.exports
}
var i = {};
return n.m = r,
n.c = i,
n.d = function(e, t, r) {
n.o(e, t) || Object.defineProperty(e, t, {
configurable: !1,
enumerable: !0,
get: 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 = 16)
}([function(e, t) {
function o(e, t, r) {
switch (r.length) {
case 0:
return e.call(t);
case 1:
return e.call(t, r[0]);
case 2:
return e.call(t, r[0], r[1]);
case 3:
return e.call(t, r[0], r[1], r[2])
}
return e.apply(t, r)
}
function r(e, t) {
var r, n, i, o = j(e) || (i = n = r = e) && "object" == typeof i && c(n) && w.call(r, "callee") && (!S.call(r, "callee") || k.call(r) == m) ? function(e, t) {
for (var r = -1, n = Array(e); ++r < e; )
n[r] = t(r);
return n
}(e.length, String) : [], a = o.length, s = !!a;
for (var l in e)
!t && !w.call(e, l) || s && ("length" == l || u(l, a)) || o.push(l);
return o
}
function l(e, t, r) {
var n = e[t];
w.call(e, t) && s(n, r) && (void 0 !== r || t in e) || (e[t] = r)
}
function u(e, t) {
return !!(t = null == t ? y : t) && ("number" == typeof e || b.test(e)) && -1 < e && e % 1 == 0 && e < t
}
function n(e) {
var t = e && e.constructor;
return e === ("function" == typeof t && t.prototype || T)
}
function s(e, t) {
return e === t || e != e && t != t
}
function c(e) {
return null != e && "number" == typeof (n = e.length) && -1 < n && n % 1 == 0 && n <= y && !((r = h(t = e) ? k.call(t) : "") == _ || r == g);
var t, r, n
}
function h(e) {
var t = typeof e;
return !!e && ("object" == t || "function" == t)
}
function i(e) {
return c(e) ? r(e) : function(e) {
if (!n(e))
return C(e);
var t = [];
for (var r in Object(e))
w.call(e, r) && "constructor" != r && t.push(r);
return t
}(e)
}
var d, a, p, f, v, y = 9007199254740991, m = "[object Arguments]", _ = "[object Function]", g = "[object GeneratorFunction]", b = /^(?:0|[1-9]\d*)$/, T = Object.prototype, w = T.hasOwnProperty, k = T.toString, S = T.propertyIsEnumerable, C = (f = Object.keys,
v = Object,
function(e) {
return f(v(e))
}
), E = Math.max, x = !S.call({
valueOf: 1
}, "valueOf"), j = Array.isArray, P = (d = function(e, t) {
if (x || n(t) || c(t))
!function(e, t, r, n) {
r || (r = {});
for (var i = -1, o = t.length; ++i < o; ) {
var a = t[i]
, s = n ? n(r[a], e[a], a, r, e) : void 0;
l(r, a, void 0 === s ? e[a] : s)
}
}(t, i(t), e);
else
for (var r in t)
w.call(t, r) && l(e, r, t[r])
}
,
a = function(e, t) {
var r = -1
, n = t.length
, i = 1 < n ? t[n - 1] : void 0
, o = 2 < n ? t[2] : void 0;
for (i = 3 < d.length && "function" == typeof i ? (n--,
i) : void 0,
o && function(e, t, r) {
if (!h(r))
return !1;
var n = typeof t;
return !!("number" == n ? c(r) && u(t, r.length) : "string" == n && t in r) && s(r[t], e)
}(t[0], t[1], o) && (i = n < 3 ? void 0 : i,
n = 1),
e = Object(e); ++r < n; ) {
var a = t[r];
a && d(e, a)
}
return e
}
,
p = E(void 0 === p ? a.length - 1 : p, 0),
function() {
for (var e = arguments, t = -1, r = E(e.length - p, 0), n = Array(r); ++t < r; )
n[t] = e[p + t];
t = -1;
for (var i = Array(p + 1); ++t < p; )
i[t] = e[t];
return i[p] = n,
o(a, this, i)
}
);
e.exports = P
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(e, t, r) {
r = void 0 === r ? 1 : r,
e[t] = e[t] || 0,
e[t] += r
}
}
, function(r, e, t) {
(function(e) {
var t;
t = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {},
r.exports = t
}
).call(e, t(5))
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n, i = r(18), o = (n = i) && n.__esModule ? n : {
default: n
}, a = o.default.methodFactory;
o.default.methodFactory = function(e, t, r) {
var n = a(e, t, r);
return function() {
for (var e = ["[mux]"], t = 0; t < arguments.length; t++)
e.push(arguments[t]);
n.apply(void 0, e)
}
}
,
o.default.setLevel(o.default.getLevel()),
t.default = o.default
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n = function(e) {
if ("string" != typeof e || "" === e)
return ["localhost"];
var t = e.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/) || []
, r = t[4]
, n = void 0;
return r && (n = (r.match(/[^\.]+\.[^\.]+$/) || [])[0]),
[r, n]
};
t.extractHostnameAndDomain = n,
t.extractHostname = function(e) {
return n(e)[0]
}
,
t.extractDomain = function(e) {
return n(e)[1]
}
}
, function(e5, f5) {
var g5;
g5 = function() {
return this
}();
try {
g5 = g5 || Function("return this")() || eval("this")
} catch (e5) {
"object" == typeof window && (g5 = window)
}
e5.exports = g5
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.generateUUID = function() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
var t = 16 * Math.random() | 0;
return ("x" === e ? t : 3 & t | 8).toString(16)
})
}
,
t.generateShortID = function() {
return ("000000" + (Math.random() * Math.pow(36, 6) << 0).toString(36)).slice(-6)
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(e) {
e = (e = e || "").match(/[^\r\n]+/g) || [];
for (var t = {}, r = 0; r < e.length; r++) {
var n = e[r].split(/\s*:\s*(.+)/);
3 === n.length && (t[n[0]] = n[1])
}
return t
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.findMediaElement = t.getMuxPlayerId = void 0;
var n = r(6)
, i = function(e) {
return e && void 0 !== e.nodeName ? (e.muxId || (e.muxId = e.id || (0,
n.generateShortID)()),
e.muxId) : e
};
t.getMuxPlayerId = i,
t.findMediaElement = function(e) {
var t = void 0;
return e && void 0 !== e.nodeName ? e = i(t = e) : t = document.querySelector(e),
[t, e, t && t.nodeName ? t.nodeName.toLowerCase() : ""]
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function() {
return "1" === (o.default.doNotTrack || o.default.navigator.doNotTrack || o.default.navigator.msDoNotTrack)
}
;
var n, i = r(2), o = (n = i) && n.__esModule ? n : {
default: n
}
}
, function(i, e, o) {
(function(e) {
var t, r = void 0 !== e ? e : "undefined" != typeof window ? window : {}, n = o(21);
"undefined" != typeof document ? t = document : (t = r["__GLOBAL_DOCUMENT_CACHE@4"]) || (t = r["__GLOBAL_DOCUMENT_CACHE@4"] = n),
i.exports = t
}
).call(e, o(5))
}
, function(e, t) {
e.exports = function(e) {
return e.webpackPolyfill || (e.deprecate = function() {}
,
e.paths = [],
e.children || (e.children = []),
Object.defineProperty(e, "loaded", {
enumerable: !0,
get: function() {
return e.l
}
}),
Object.defineProperty(e, "id", {
enumerable: !0,
get: function() {
return e.i
}
}),
e.webpackPolyfill = 1),
e
}
}
, function(e, t, r) {
"use strict";
var n = r(40)
, i = r(41)
, o = r(14);
e.exports = {
formats: o,
parse: i,
stringify: n
}
}
, function(e, o, t) {
"use strict";
var a = Object.prototype.hasOwnProperty
, s = function() {
for (var e = [], t = 0; t < 256; ++t)
e.push("%" + ((t < 16 ? "0" : "") + t.toString(16)).toUpperCase());
return e
}();
o.arrayToObject = function(e, t) {
for (var r = t && t.plainObjects ? Object.create(null) : {}, n = 0; n < e.length; ++n)
void 0 !== e[n] && (r[n] = e[n]);
return r
}
,
o.merge = function(r, n, i) {
if (!n)
return r;
if ("object" != typeof n) {
if (Array.isArray(r))
r.push(n);
else {
if ("object" != typeof r)
return [r, n];
(i.plainObjects || i.allowPrototypes || !a.call(Object.prototype, n)) && (r[n] = !0)
}
return r
}
if ("object" != typeof r)
return [r].concat(n);
var e = r;
return Array.isArray(r) && !Array.isArray(n) && (e = o.arrayToObject(r, i)),
Array.isArray(r) && Array.isArray(n) ? (n.forEach(function(e, t) {
a.call(r, t) ? r[t] && "object" == typeof r[t] ? r[t] = o.merge(r[t], e, i) : r.push(e) : r[t] = e
}),
r) : Object.keys(n).reduce(function(e, t) {
var r = n[t];
return a.call(e, t) ? e[t] = o.merge(e[t], r, i) : e[t] = r,
e
}, e)
}
,
o.assign = function(e, r) {
return Object.keys(r).reduce(function(e, t) {
return e[t] = r[t],
e
}, e)
}
,
o.decode = function(t) {
try {
return decodeURIComponent(t.replace(/\+/g, " "))
} catch (e) {
return t
}
}
,
o.encode = function(e) {
if (0 === e.length)
return e;
for (var t = "string" == typeof e ? e : String(e), r = "", n = 0; n < t.length; ++n) {
var i = t.charCodeAt(n);
45 === i || 46 === i || 95 === i || 126 === i || 48 <= i && i <= 57 || 65 <= i && i <= 90 || 97 <= i && i <= 122 ? r += t.charAt(n) : i < 128 ? r += s[i] : i < 2048 ? r += s[192 | i >> 6] + s[128 | 63 & i] : i < 55296 || 57344 <= i ? r += s[224 | i >> 12] + s[128 | i >> 6 & 63] + s[128 | 63 & i] : (n += 1,
i = 65536 + ((1023 & i) << 10 | 1023 & t.charCodeAt(n)),
r += s[240 | i >> 18] + s[128 | i >> 12 & 63] + s[128 | i >> 6 & 63] + s[128 | 63 & i])
}
return r
}
,
o.compact = function(e) {
for (var t = [{
obj: {
o: e
},
prop: "o"
}], r = [], n = 0; n < t.length; ++n)
for (var i = t[n], o = i.obj[i.prop], a = Object.keys(o), s = 0; s < a.length; ++s) {
var l = a[s]
, u = o[l];
"object" == typeof u && null !== u && -1 === r.indexOf(u) && (t.push({
obj: o,
prop: l
}),
r.push(u))
}
return function(e) {
for (var t; e.length; ) {
var r = e.pop();
if (t = r.obj[r.prop],
Array.isArray(t)) {
for (var n = [], i = 0; i < t.length; ++i)
void 0 !== t[i] && n.push(t[i]);
r.obj[r.prop] = n
}
}
return t
}(t)
}
,
o.isRegExp = function(e) {
return "[object RegExp]" === Object.prototype.toString.call(e)
}
,
o.isBuffer = function(e) {
return null != e && !!(e.constructor && e.constructor.isBuffer && e.constructor.isBuffer(e))
}
}
, function(e, t, r) {
"use strict";
var n = String.prototype.replace
, i = /%20/g;
e.exports = {
default: "RFC3986",
formatters: {
RFC1738: function(e) {
return n.call(e, i, "+")
},
RFC3986: function(e) {
return e
}
},
RFC1738: "RFC1738",
RFC3986: "RFC3986"
}
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
function i(e) {
var t = {};
for (var r in e)
e.hasOwnProperty(r) && (t[e[r]] = r);
return t
}
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(o) {
var a = {}
, s = {};
return Object.keys(o).forEach(function(t) {
var r = !1;
if (o.hasOwnProperty(t) && void 0 !== o[t]) {
var e = t.split("_")
, n = e[0]
, i = c[n];
i || (l.default.info("Data key word `" + e[0] + "` not expected in " + t),
i = n + "_"),
e.splice(1).forEach(function(e) {
"url" === e && (r = !0),
h[e] ? i += h[e] : (l.default.info("Data key word `" + e + "` not expected in " + t),
i += "_" + e + "_")
}),
r ? s[i] = o[t] : a[i] = o[t]
}
}),
(0,
u.default)(a, s)
}
;
var o = r(3)
, l = n(o)
, a = r(0)
, u = n(a)
, c = i({
a: "env",
b: "beacon",
d: "ad",
e: "event",
f: "experiment",
m: "mux",
n: "response",
p: "player",
q: "request",
r: "retry",
s: "session",
t: "timestamp",
u: "viewer",
v: "video",
w: "page",
x: "view",
y: "sub"
})
, h = i({
ad: "ad",
ag: "aggregate",
ap: "api",
al: "application",
ar: "architecture",
as: "asset",
au: "autoplay",
av: "average",
bi: "bitrate",
br: "break",
bw: "browser",
by: "bytes",
ca: "cached",
cb: "cancel",
cd: "code",
cg: "category",
ch: "changed",
cn: "config",
co: "count",
ce: "counter",
cp: "complete",
ct: "content",
cu: "current",
dg: "downscaling",
dm: "domain",
dn: "cdn",
do: "downscale",
du: "duration",
dv: "device",
ec: "encoding",
en: "end",
eg: "engine",
em: "embed",
er: "error",
es: "errorcode",
et: "errortext",
ee: "event",
ev: "events",
ex: "expires",
fi: "first",
fm: "family",
ft: "format",
fq: "frequency",
fr: "frame",
fs: "fullscreen",
he: "headers",
ho: "host",
hn: "hostname",
ht: "height",
id: "id",
ii: "init",
in: "instance",
ip: "ip",
is: "is",
ke: "key",
la: "language",
lb: "labeled",
le: "level",
li: "live",
ld: "loaded",
lo: "load",
ls: "lists",
lt: "latency",
ma: "max",
md: "media",
me: "message",
mi: "mime",
ml: "midroll",
mm: "min",
mn: "manufacturer",
mx: "mux",
nm: "name",
no: "number",
on: "on",
os: "os",
pa: "paused",
pb: "playback",
pd: "producer",
pe: "percentage",
pf: "played",
pg: "program",
ph: "playhead",
pi: "plugin",
pl: "preroll",
po: "poster",
pr: "preload",
py: "property",
ra: "rate",
rd: "requested",
re: "rebuffer",
rf: "rendition",
ro: "ratio",
rp: "response",
rq: "request",
rs: "requests",
sa: "sample",
se: "session",
sk: "seek",
sm: "stream",
so: "source",
sq: "sequence",
sr: "series",
st: "start",
su: "startup",
sv: "server",
sw: "software",
ta: "tag",
tc: "tech",
te: "text",
th: "throughput",
ti: "time",
tl: "total",
to: "to",
tt: "title",
ty: "type",
ug: "upscaling",
up: "upscale",
ur: "url",
us: "user",
va: "variant",
vd: "viewed",
vi: "video",
ve: "version",
vw: "view",
vr: "viewer",
wd: "width",
wa: "watch",
wt: "waiting"
})
}
, function(e, t, r) {
"use strict";
e.exports = r(17).default
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i = function(e, t) {
if (Array.isArray(e))
return e;
if (Symbol.iterator in Object(e))
return function(e, t) {
var r = []
, n = !0
, i = !1
, o = void 0;
try {
for (var a, s = e[Symbol.iterator](); !(n = (a = s.next()).done) && (r.push(a.value),
!t || r.length !== t); n = !0)
;
} catch (e) {
i = !0,
o = e
} finally {
try {
!n && s.return && s.return()
} finally {
if (i)
throw o
}
}
return r
}(e, t);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
, o = r(2)
, a = n(o)
, s = r(8)
, l = r(3)
, u = n(l)
, c = r(9)
, h = n(c)
, d = r(19)
, p = n(d)
, f = r(48)
, v = n(f)
, y = r(49)
, m = n(y)
, _ = {}
, g = function e(t) {
var r = arguments;
"string" == typeof t ? e.hasOwnProperty(t) ? a.default.setTimeout(function() {
r = Array.prototype.splice.call(r, 1),
e[t].apply(null, r)
}, 0) : u.default.warn("`" + t + "` is an unknown task") : "function" == typeof t ? a.default.setTimeout(function() {
t(e)
}, 0) : u.default.warn("`" + t + "` is invalid.")
};
g.loaded = Date.now(),
g.VERSION = "2.7.0",
g.API_VERSION = "2.0",
g.PLAYER_TRACKED = !1,
g.monitor = function(e, t) {
return (0,
v.default)(g, e, t)
}
,
g.destroyMonitor = function(e) {
var t = (0,
s.findMediaElement)(e)
, r = i(t, 1)
, n = r[0];
n && n.mux && "function" == typeof n.mux.destroy ? n.mux.destroy() : u.default.error("A video element monitor for `" + e + "` has not been initialized via `mux.monitor`.")
}
,
g.addHLSJS = function(e, t) {
var r = (0,
s.getMuxPlayerId)(e);
_[r] ? _[r].addHLSJS(t) : u.default.error("A monitor for `" + r + "` has not been initialized.")
}
,
g.addDashJS = function(e, t) {
var r = (0,
s.getMuxPlayerId)(e);
_[r] ? _[r].addDashJS(t) : u.default.error("A monitor for `" + r + "` has not been initialized.")
}
,
g.removeHLSJS = function(e) {
var t = (0,
s.getMuxPlayerId)(e);
_[t] ? _[t].removeHLSJS() : u.default.error("A monitor for `" + t + "` has not been initialized.")
}
,
g.removeDashJS = function(e, t) {
var r = (0,
s.getMuxPlayerId)(e);
_[r] ? _[r].removeDashJS(t) : u.default.error("A monitor for `" + r + "` has not been initialized.")
}
,
g.init = function(e, t) {
var r = (0,
s.getMuxPlayerId)(e);
_[r] = new p.default(g,r,t)
}
,
g.emit = function(e, t, r) {
var n = (0,
s.getMuxPlayerId)(e);
_[n] ? (_[n].emit(t, r),
"destroy" === t && delete _[n]) : u.default.error("A monitor for `" + n + "` has not been initialized.")
}
,
(0,
h.default)() && u.default.info("The browser's Do Not Track flag is enabled - Mux beaconing may be disabled."),
a.default.addEventListener("unload", function() {
g.WINDOW_UNLOADING = !0
}, !1),
g.checkDoNotTrack = h.default,
g.log = u.default,
g.utils = m.default,
t.default = g
}
, function(r, n, i) {
var o, a;
!function(e, t) {
"use strict";
void 0 !== (a = "function" == typeof (o = function() {
function i(e, t) {
var r = e[t];
if ("function" == typeof r.bind)
return r.bind(e);
try {
return Function.prototype.bind.call(r, e)
} catch (t) {
return function() {
return Function.prototype.apply.apply(r, [e, arguments])
}
}
}
function l(e, t) {
for (var r = 0; r < h.length; r++) {
var n = h[r];
this[n] = r < e ? o : this.methodFactory(n, e, t)
}
this.log = this.debug
}
function u(e, t, r) {
return "debug" === (n = e) && (n = "log"),
typeof console !== c && (void 0 !== console[n] ? i(console, n) : void 0 !== console.log ? i(console, "log") : o) || function(e, t, r) {
return function() {
typeof console !== c && (l.call(this, t, r),
this[e].apply(this, arguments))
}
}
.apply(this, arguments);
var n
}
function r(r, e, t) {
function n() {
var e;
if (typeof window !== c) {
try {
e = window.localStorage[a]
} catch (e) {}
if (typeof e === c)
try {
var t = window.document.cookie
, r = t.indexOf(encodeURIComponent(a) + "=");
r && (e = /^([^;]+)/.exec(t.slice(r))[1])
} catch (e) {}
return void 0 === o.levels[e] && (e = void 0),
e
}
}
var i, o = this, a = "loglevel";
r && (a += ":" + r),
o.levels = {
TRACE: 0,
DEBUG: 1,
INFO: 2,
WARN: 3,
ERROR: 4,
SILENT: 5
},
o.methodFactory = t || u,
o.getLevel = function() {
return i
}
,
o.setLevel = function(e, t) {
if ("string" == typeof e && void 0 !== o.levels[e.toUpperCase()] && (e = o.levels[e.toUpperCase()]),
!("number" == typeof e && 0 <= e && e <= o.levels.SILENT))
throw "log.setLevel() called with invalid level: " + e;
if (i = e,
!1 !== t && function(e) {
var t = (h[e] || "silent").toUpperCase();
if (typeof window !== c) {
try {
return window.localStorage[a] = t
} catch (e) {}
try {
window.document.cookie = encodeURIComponent(a) + "=" + t + ";"
} catch (e) {}
}
}(e),
l.call(o, e, r),
typeof console === c && e < o.levels.SILENT)
return "No console available for logging"
}
,
o.setDefaultLevel = function(e) {
n() || o.setLevel(e, !1)
}
,
o.enableAll = function(e) {
o.setLevel(o.levels.TRACE, e)
}
,
o.disableAll = function(e) {
o.setLevel(o.levels.SILENT, e)
}
;
var s = n();
null == s && (s = null == e ? "WARN" : e),
o.setLevel(s, !1)
}
var o = function() {}
, c = "undefined"
, h = ["trace", "debug", "info", "warn", "error"]
, n = new r
, a = {};
n.getLogger = function(e) {
if ("string" != typeof e || "" === e)
throw new TypeError("You must supply a name when creating a logger.");
var t = a[e];
return t || (t = a[e] = new r(e,n.getLevel(),n.methodFactory)),
t
}
;
var e = typeof window !== c ? window.log : void 0;
return n.noConflict = function() {
return typeof window !== c && window.log === n && (window.log = e),
n
}
,
n
}
) ? o.call(n, i, n, r) : o) && (r.exports = a)
}()
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var a = function(e, t) {
if (Array.isArray(e))
return e;
if (Symbol.iterator in Object(e))
return function(e, t) {
var r = []
, n = !0
, i = !1
, o = void 0;
try {
for (var a, s = e[Symbol.iterator](); !(n = (a = s.next()).done) && (r.push(a.value),
!t || r.length !== t); n = !0)
;
} catch (e) {
i = !0,
o = e
} finally {
try {
!n && s.return && s.return()
} finally {
if (i)
throw o
}
}
return r
}(e, t);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
, i = r(3)
, s = n(i)
, o = r(0)
, l = n(o)
, u = r(6)
, c = r(4)
, h = r(2)
, d = n(h)
, p = r(1)
, f = n(p)
, v = r(20)
, y = n(v)
, m = r(23)
, _ = r(24)
, g = r(25)
, b = n(g)
, T = r(26)
, w = n(T)
, k = r(27)
, S = n(k)
, C = r(28)
, E = n(C)
, x = r(29)
, j = n(x)
, P = r(30)
, O = n(P)
, A = r(31)
, M = n(A)
, D = r(32)
, I = n(D)
, R = r(33)
, N = n(R)
, L = r(34)
, F = n(L)
, B = r(35)
, H = n(B)
, q = r(36)
, V = n(q)
, W = r(37)
, U = n(W)
, z = r(38)
, G = n(z)
, $ = r(47)
, K = n($)
, X = ["viewstart", "ended", "loadstart", "pause", "play", "playing", "ratechange", "waiting", "adplay", "adpause", "adended", "aderror", "adplaying", "adrequest", "adresponse", "adbreakstart", "adbreakend", "rebufferstart", "rebufferend", "seeked", "error", "hb", "requestcompleted", "requestfailed", "requestcanceled"]
, J = function(e, t, r) {
var n = this;
this.DOM_CONTENT_LOADED_EVENT_END = d.default.performance && d.default.performance.timing.domContentLoadedEventEnd,
this.NAVIGATION_START = d.default.performance && d.default.performance.timing.navigationStart,
this.mux = e,
this.id = t,
(r = (0,
l.default)({
debug: !1,
minimumRebufferDuration: 250,
sustainedRebufferThreshold: 1e3,
playbackHeartbeatTime: 25,
beaconDomain: "litix.io",
sampleRate: 1,
disableCookies: !1,
respectDoNotTrack: !0,
errorTranslator: function(e) {
return e
}
}, r)).data = r.data || {},
r.data.property_key && (r.data.env_key = r.data.property_key,
delete r.data.property_key),
s.default.setLevel(r.debug ? "debug" : "warn"),
this.getPlayheadTime = r.getPlayheadTime,
this.getStateData = r.getStateData || function() {}
,
this.getAdData = r.getAdData || function() {}
,
this.minimumRebufferDuration = r.minimumRebufferDuration,
this.sustainedRebufferThreshold = r.sustainedRebufferThreshold,
this.playbackHeartbeatTime = r.playbackHeartbeatTime,
this.errorTranslator = r.errorTranslator,
this.playbackEventDispatcher = new G.default(e,r.data.env_key,r),
this.data = {
player_instance_id: (0,
u.generateShortID)(),
mux_sample_rate: r.sampleRate,
beacon_domain: r.beaconDomain
},
this.data.view_sequence_number = 1,
this.data.player_sequence_number = 1,
this.oldEmit = this.emit,
this.emit = function(e, t) {
t = (0,
l.default)({
viewer_time: Date.now()
}, t),
this.oldEmit(e, t)
}
;
var i = function() {
void 0 === this.data.view_start && (this.data.view_start = Date.now(),
this.emit("viewstart"))
}
.bind(this);
this.on("viewinit", function(e, t) {
this._resetVideoData(),
this._resetViewData(),
this._resetErrorData(),
this._updateStateData(),
(0,
l.default)(this.data, t),
this._initializeViewData(),
this.one("play", i),
this.one("adbreakstart", i)
});
var o = function(e) {
this.emit("viewend"),
this.send("viewend"),
this.emit("viewinit", e)
}
.bind(this);
this.on("videochange", function(e, t) {
o(t)
}),
this.on("programchange", function(e, t) {
this.data.player_is_paused && this.mux.log.warn("The `programchange` event is intended to be used when the content changes mid playback without the video source changing, however the video is not currently playing. If the video source is changing please use the videochange event otherwise you will lose startup time information."),
o((0,
l.default)(t, {
view_program_changed: !0
})),
i()
}),
this.on("destroy", this.destroy);
var a = this.destroy.bind(this);
d.default.addEventListener("unload", a, !1),
this.on("destroy", function() {
d.default.removeEventListener("unload", a)
}),
this.on("playerready", function(e, t) {
(0,
l.default)(this.data, t)
}),
X.forEach(function(r) {
n.on(r, function(e, t) {
0 !== r.indexOf("ad") && this._updateStateData(),
(0,
l.default)(this.data, t),
this._sanitizeData()
}),
n.on("after" + r, function() {
("error" !== r || this.viewErrored) && this.send(r)
})
}),
this.on("viewend", function(e, t) {
(0,
l.default)(n.data, t)
}),
this.one("playerready", function(e) {
var t = Date.now();
this.data.player_init_time && (this.data.player_startup_time = t - this.data.player_init_time),
!this.mux.PLAYER_TRACKED && this.NAVIGATION_START && (this.mux.PLAYER_TRACKED = !0,
(this.data.player_init_time || this.DOM_CONTENT_LOADED_EVENT_END) && (this.data.page_load_time = Math.min(this.data.player_init_time || 1 / 0, this.DOM_CONTENT_LOADED_EVENT_END || 1 / 0) - this.NAVIGATION_START)),
this.send("playerready"),
delete this.data.player_startup_time,
delete this.data.page_load_time
}),
S.default.apply(this),
U.default.apply(this),
F.default.apply(this),
O.default.apply(this),
w.default.apply(this),
N.default.apply(this),
E.default.apply(this),
j.default.apply(this),
H.default.apply(this),
M.default.apply(this),
I.default.apply(this),
V.default.apply(this),
K.default.apply(this),
r.hlsjs && this.addHLSJS(r),
r.dashjs && this.addDashJS(r),
this.emit("viewinit", r.data)
};
(0,
l.default)(J.prototype, b.default.prototype),
(0,
l.default)(J.prototype, O.default.prototype),
(0,
l.default)(J.prototype, F.default.prototype),
(0,
l.default)(J.prototype, w.default.prototype),
(0,
l.default)(J.prototype, E.default.prototype),
(0,
l.default)(J.prototype, j.default.prototype),
(0,
l.default)(J.prototype, H.default.prototype),
(0,
l.default)(J.prototype, M.default.prototype),
(0,
l.default)(J.prototype, I.default.prototype),
J.prototype.destroy = function() {
this._destroyed || (this._destroyed = !0,
void 0 !== this.data.view_start && (this.emit("viewend"),
this.send("viewend")),
this.playbackEventDispatcher.destroy(),
this.removeHLSJS(),
this.removeDashJS(),
d.default.clearTimeout(this._heartBeatTimeout))
}
,
J.prototype.send = function(e) {
var t = (0,
l.default)({}, this.data);
if (1 === t.player_error_code && (delete t.player_error_code,
delete t.player_error_message),
t.player_source_duration === 1 / 0 || t.video_source_duration === 1 / 0 ? t.video_source_is_live = !0 : (0 < t.player_source_duration || 0 < t.video_source_duration) && (t.video_source_is_live = !1),
t.video_source_url = t.video_source_url || t.player_source_url,
t.video_source_url) {
var r = (0,
c.extractHostnameAndDomain)(t.video_source_url)
, n = a(r, 2)
, i = n[0]
, o = n[1];
t.video_source_domain = o,
t.video_source_hostname = i
}
delete t.ad_request_id,
this.playbackEventDispatcher.send(e, t),
this.data.view_sequence_number++,
this.data.player_sequence_number++,
this._restartHeartBeat()
}
,
J.prototype._updateStateData = function() {
(0,
l.default)(this.data, this.getStateData()),
this.getPlayheadTime && (this.data.player_playhead_time = this.getPlayheadTime()),
this._sanitizeData()
}
,
J.prototype._sanitizeData = function() {
var r = this;
["player_width", "player_height", "video_source_width", "video_source_height", "player_playhead_time"].forEach(function(e) {
var t = parseInt(r.data[e], 10);
r.data[e] = isNaN(t) ? void 0 : t
})
}
,
J.prototype._resetVideoData = function(e, t) {
var r = this;
Object.keys(this.data).forEach(function(e) {
0 === e.indexOf("video_") && delete r.data[e]
})
}
,
J.prototype._resetViewData = function() {
var t = this;
Object.keys(this.data).forEach(function(e) {
0 === e.indexOf("view_") && delete t.data[e]
}),
this.data.view_sequence_number = 1
}
,
J.prototype._resetErrorData = function(e, t) {
delete this.data.player_error_code,
delete this.data.player_error_message
}
,
J.prototype._initializeViewData = function() {
var e = this
, t = this.data.view_id = (0,
u.generateUUID)();
this.data.video_id || (this.data.video_id = (0,
y.default)(this.data.player_source_url));
var r = function() {
t === e.data.view_id && (0,
f.default)(e.data, "player_view_count", 1)
};
this.data.player_is_paused ? this.one("play", r) : r()
}
,
J.prototype._restartHeartBeat = function() {
var e = this;
d.default.clearTimeout(this._heartBeatTimeout),
this.viewErrored || (this._heartBeatTimeout = d.default.setTimeout(function() {
e.data.player_is_paused || e.emit("hb")
}, 1e4))
}
,
J.prototype.addHLSJS = function(e) {
return e.hlsjs ? this.hlsjs ? void this.mux.log.warn("An instance of HLS.js is already being monitored for this player.") : (this.hlsjs = e.hlsjs,
void (0,
m.monitorHlsJs)(this.mux, this.id, e.hlsjs, {}, e.Hls || d.default.Hls)) : void this.mux.log.warn("You must pass a valid hlsjs instance in order to track it.")
}
,
J.prototype.removeHLSJS = function() {
this.hlsjs && ((0,
m.stopMonitoringHlsJs)(this.hlsjs),
this.hlsjs = void 0)
}
,
J.prototype.addDashJS = function(e) {
return e.dashjs ? this.dashjs ? void this.mux.log.warn("An instance of Dash.js is already being monitored for this player.") : (this.dashjs = e.dashjs,
void (0,
_.monitorDashJS)(this.mux, this.id, e.dashjs)) : void this.mux.log.warn("You must pass a valid dashjs instance in order to track it.")
}
,
J.prototype.removeDashJS = function() {
this.dashjs && ((0,
_.stopMonitoringDashJS)(this.dashjs),
this.dashjs = void 0)
}
,
t.default = J
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(e) {
var t = o.default.createElement("a");
t.href = e;
var r = t.pathname.replace(/\.[^\/.]+$/, "");
return s.default.encode(t.host + r).split("=")[0]
}
;
var i = r(10)
, o = n(i)
, a = r(22)
, s = n(a)
}
, function(e, t) {}
, function(e, o, a) {
(function(n, e) {
var i;
!function(e) {
var t = ("object" == typeof n && n && n.exports,
function(e) {
this.message = e
}
);
t.prototype = new Error,
t.prototype.name = "InvalidCharacterError";
var u = function(e) {
throw new t(e)
}
, c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
, s = /[\t\n\f\r ]/g
, r = {
encode: function(e) {
e = String(e),
/[^\0-\xFF]/.test(e) && u("The string to be encoded contains characters outside of the Latin1 range.");
for (var t, r, n, i, o = e.length % 3, a = "", s = -1, l = e.length - o; ++s < l; )
t = e.charCodeAt(s) << 16,
r = e.charCodeAt(++s) << 8,
n = e.charCodeAt(++s),
a += c.charAt((i = t + r + n) >> 18 & 63) + c.charAt(i >> 12 & 63) + c.charAt(i >> 6 & 63) + c.charAt(63 & i);
return 2 == o ? (t = e.charCodeAt(s) << 8,
r = e.charCodeAt(++s),
a += c.charAt((i = t + r) >> 10) + c.charAt(i >> 4 & 63) + c.charAt(i << 2 & 63) + "=") : 1 == o && (i = e.charCodeAt(s),
a += c.charAt(i >> 2) + c.charAt(i << 4 & 63) + "=="),
a
},
decode: function(e) {
var t = (e = String(e).replace(s, "")).length;
t % 4 == 0 && (e = e.replace(/==?$/, ""),
t = e.length),
(t % 4 == 1 || /[^+a-zA-Z0-9\/]/.test(e)) && u("Invalid character: the string to be decoded is not correctly encoded.");
for (var r, n, i = 0, o = "", a = -1; ++a < t; )
n = c.indexOf(e.charAt(a)),
r = i % 4 ? 64 * r + n : n,
i++ % 4 && (o += String.fromCharCode(255 & r >> (-2 * i & 6)));
return o
},
version: "0.1.0"
};
void 0 !== (i = function() {
return r
}
.call(o, a, o, n)) && (n.exports = i)
}()
}
).call(o, a(11)(e), a(5))
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.stopMonitoringHlsJs = t.monitorHlsJs = void 0;
var i = r(2)
, c = n(i)
, o = r(7)
, a = n(o)
, v = r(4)
, y = function(e) {
if (!e)
return {};
var t = c.default.performance.timing.navigationStart;
return {
bytesLoaded: e.total,
requestStart: Math.round(t + e.trequest),
responseStart: Math.round(t + e.tfirst),
responseEnd: Math.round(t + e.tload)
}
}
, m = function(e) {
if (e && "function" == typeof e.getAllResponseHeaders)
return (0,
a.default)(e.getAllResponseHeaders())
};
t.monitorHlsJs = function(r, n, h) {
var s = (3 < arguments.length && void 0 !== arguments[3] && arguments[3],
arguments[4])
, e = r.log;
if (c.default.performance && c.default.performance.timing) {
var f = function(e, t) {
return r.emit(n, e, t)
}
, t = function(e, t) {
var r = t.levels
, n = t.audioTracks
, i = t.url
, o = t.stats
, a = t.networkDetails
, s = {}
, l = {};
r.forEach(function(e, t) {
s[t] = {
width: e.width,
height: e.height,
bitrate: e.bitrate,
attrs: e.attrs
}
}),
n.forEach(function(e, t) {
l[t] = {
name: e.name,
language: e.lang,
bitrate: e.bitrate
}
});
var u = y(o)
, c = u.bytesLoaded
, h = u.requestStart
, d = u.responseStart
, p = u.responseEnd;
f("requestcompleted", {
request_event_type: e,
request_bytes_loaded: c,
request_start: h,
request_response_start: d,
request_response_end: p,
request_type: "manifest",
request_hostname: (0,
v.extractHostname)(i),
request_response_headers: m(a),
request_rendition_lists: {
media: s,
audio: l,
video: {}
}
})
};
h.on(s.Events.MANIFEST_LOADED, t);
var i = function(e, t) {
var r = t.details
, n = t.level
, i = t.networkDetails
, o = t.stats
, a = y(o)
, s = a.bytesLoaded
, l = a.requestStart
, u = a.responseStart
, c = a.responseEnd;
f("requestcompleted", {
request_event_type: e,
request_bytes_loaded: s,
request_start: l,
request_response_start: u,
request_response_end: c,
request_current_level: n,
request_type: "manifest",
request_hostname: (0,
v.extractHostname)(r.url),
request_response_headers: m(i)
})
};
h.on(s.Events.LEVEL_LOADED, i);
var o = function(e, t) {
var r = t.details
, n = t.networkDetails
, i = t.stats
, o = y(i)
, a = o.bytesLoaded
, s = o.requestStart
, l = o.responseStart
, u = o.responseEnd;
f("requestcompleted", {
request_event_type: e,
request_bytes_loaded: a,
request_start: s,
request_response_start: l,
request_response_end: u,
request_type: "manifest",
request_hostname: (0,
v.extractHostname)(r.url),
request_response_headers: m(n)
})
};
h.on(s.Events.AUDIO_TRACK_LOADED, o);
var a = function(e, t) {
var r = t.stats
, n = t.networkDetails
, i = t.frag
, o = y(r)
, a = o.bytesLoaded
, s = o.requestStart
, l = o.responseStart
, u = o.responseEnd
, c = {
request_event_type: e,
request_bytes_loaded: a,
request_start: s,
request_response_start: l,
request_response_end: u,
request_hostname: n ? (0,
v.extractHostname)(n.responseURL) : void 0,
request_response_headers: m(n),
request_media_duration: i.duration
};
"main" === i.type ? (c.request_type = "media",
c.request_current_level = i.level,
c.request_video_width = (h.levels[i.level] || {}).width,
c.request_video_height = (h.levels[i.level] || {}).height) : c.request_type = i.type,
f("requestcompleted", c)
};
h.on(s.Events.FRAG_LOADED, a);
var l = function(e, t) {
var r = t.details
, n = t.response
, i = t.context
, o = t.frag;
if (r === s.ErrorDetails.MANIFEST_LOAD_ERROR || r === s.ErrorDetails.MANIFEST_LOAD_TIMEOUT || r === s.ErrorDetails.FRAG_LOAD_ERROR || r === s.ErrorDetails.FRAG_LOAD_TIMEOUT || r === s.ErrorDetails.LEVEL_LOAD_ERROR || r === s.ErrorDetails.LEVEL_LOAD_TIMEOUT) {
var a = o && o.url || i && i.url || "";
f("requestfailed", {
request_error: r,
request_url: a,
request_hostname: (0,
v.extractHostname)(a),
request_type: r === s.ErrorDetails.FRAG_LOAD_ERROR || r === s.ErrorDetails.FRAG_LOAD_TIMEOUT ? "media" : "manifest",
request_error_code: n && n.code,
request_error_text: n && n.text
})
}
};
h.on(s.Events.ERROR, l);
var u = function(e, t) {
var r = t.frag
, n = r && r._url || "";
f("requestcanceled", {
request_cancel: e,
request_url: n,
request_type: "media",
request_hostname: (0,
v.extractHostname)(n)
})
};
h.on(s.Events.FRAG_LOAD_EMERGENCY_ABORTED, u),
h._stopMuxMonitor = function() {
h.off(s.Events.MANIFEST_LOADED, t),
h.off(s.Events.LEVEL_LOADED, i),
h.off(s.Events.AUDIO_TRACK_LOADED, o),
h.off(s.Events.FRAG_LOADED, a),
h.off(s.Events.ERROR, l),
h.off(s.Events.FRAG_LOAD_EMERGENCY_ABORTED, u),
h.off(s.Events.DESTROYING, h._stopMuxMonitor),
delete h._stopMuxMonitor
}
,
h.on(s.Events.DESTROYING, h._stopMuxMonitor)
} else
e.warn("window.performance.timing not supported. Not tracking HLS.js.")
}
,
t.stopMonitoringHlsJs = function(e) {
e && "function" == typeof e._stopMuxMonitor && e._stopMuxMonitor()
}
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.stopMonitoringDashJS = t.monitorDashJS = void 0;
var i = r(2)
, s = n(i)
, o = r(7)
, d = n(o)
, p = r(4)
, j = function(e, t) {
if (!e || "function" != typeof e.getRequests)
return {};
var r = e.getRequests({
state: "executed"
});
if (0 === r.length)
return {};
var n = r[r.length - 1]
, i = (0,
p.extractHostname)(n.url)
, o = n.bytesLoaded
, a = new Date(n.requestStartDate).getTime()
, s = new Date(n.firstByteDate).getTime()
, l = new Date(n.requestEndDate).getTime()
, u = isNaN(n.duration) ? 0 : n.duration
, c = t.getMetricsFor(n.mediaType).HttpList
, h = void 0;
return 0 < c.length && (h = (0,
d.default)(c[c.length - 1]._responseHeaders || "")),
{
requestStart: a,
requestResponseStart: s,
requestResponseEnd: l,
requestBytesLoaded: o,
requestResponseHeaders: h,
requestMediaDuration: u,
requestHostname: i
}
};
t.monitorDashJS = function(r, n, E) {
var e = (3 < arguments.length && void 0 !== arguments[3] && arguments[3],
r.log);
if (E && E.on) {
var x = function(e, t) {
return r.emit(n, e, t)
}
, t = function(e) {
var t = e.type
, r = e.data
, n = r || {}
, i = n.url;
x("requestcompleted", {
request_event_type: t,
request_start: 0,
request_response_start: 0,
request_response_end: 0,
request_bytes_loaded: -1,
request_type: "manifest",
request_hostname: (0,
p.extractHostname)(i)
})
};
E.on("manifestLoaded", t);
var m = {}
, i = function(e) {
var t = e.type
, r = e.fragmentModel
, n = e.chunk
, i = n || {}
, o = i.mediaInfo
, a = o || {}
, s = a.type
, l = a.bitrateList
, u = {};
(l = l || []).forEach(function(e, t) {
u[t] = {},
u[t].width = e.width,
u[t].height = e.height,
u[t].bitrate = e.bandwidth,
u[t].attrs = {}
}),
"video" === s ? m.video = u : "audio" === s ? m.audio = u : m.media = u;
var c = j(r, E)
, h = c.requestStart
, d = c.requestResponseStart
, p = c.requestResponseEnd
, f = c.requestResponseHeaders
, v = c.requestMediaDuration
, y = c.requestHostname;
x("requestcompleted", {
request_event_type: t,
request_start: h,
request_response_start: d,
request_response_end: p,
request_bytes_loaded: -1,
request_type: s + "_init",
request_response_headers: f,
request_hostname: y,
request_media_duration: v,
request_rendition_lists: m
})
};
E.on("initFragmentLoaded", i);
var o = function(e) {
var t, r, n, i, o = e.type, a = e.fragmentModel, s = e.chunk, l = s || {}, u = l.mediaInfo, c = l.start, h = u || {}, d = h.type, p = j(a, E), f = p.requestStart, v = p.requestResponseStart, y = p.requestResponseEnd, m = p.requestBytesLoaded, _ = p.requestResponseHeaders, g = p.requestMediaDuration, b = p.requestHostname, T = (t = d,
n = (r = E).getQualityFor(t),
(i = r.getCurrentTrackFor(t).bitrateList) ? {
currentLevel: n,
renditionWidth: i[n].width || null,
renditionHeight: i[n].height || null,
renditionBitrate: i[n].bandwidth
} : {}), w = T.currentLevel, k = T.renditionWidth, S = T.renditionHeight, C = T.renditionBitrate;
x("requestcompleted", {
request_event_type: o,
request_start: f,
request_response_start: v,
request_response_end: y,
request_bytes_loaded: m,
request_type: d,
request_response_headers: _,
request_hostname: b,
request_media_start_time: c,
request_media_duration: g,
request_current_level: w,
request_labeled_bitrate: C,
request_video_width: k,
request_video_height: S
})
};
E.on("mediaFragmentLoaded", o);
var a = function(e) {
var t = e.error
, r = e.event
, n = (r = r || {}).request || {}
, i = s.default.event && s.default.event.currentTarget || {};
x("requestfailed", {
request_error: t + "_" + r.id + "_" + n.type,
request_url: r.url,
request_hostname: (0,
p.extractHostname)(r.url),
request_type: n.mediaType,
request_error_code: i.status,
request_error_type: i.statusText
})
};
E.on("error", a),
E._stopMuxMonitor = function() {
E.off("manifestLoaded", t),
E.off("initFragmentLoaded", i),
E.off("mediaFragmentLoaded", o),
E.off("error", a),
delete E._stopMuxMonitor
}
} else
e.warn("Invalid dash.js player reference. Monitoring blocked.")
}
,
t.stopMonitoringDashJS = function(e) {
e && "function" == typeof e._stopMuxMonitor && e._stopMuxMonitor()
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n = function() {}
, o = 0;
n.prototype.on = function(e, t, r) {
return t._eventEmitterGuid = t._eventEmitterGuid || ++o,
this._listeners = this._listeners || {},
this._listeners[e] = this._listeners[e] || [],
r && (t = t.bind(r)),
this._listeners[e].push(t),
t
}
,
n.prototype.off = function(e, r) {
var n = this._listeners && this._listeners[e];
n && n.forEach(function(e, t) {
e._eventEmitterGuid === r._eventEmitterGuid && n.splice(t, 1)
})
}
,
n.prototype.one = function(t, r, n) {
var i = this;
r._eventEmitterGuid = r._eventEmitterGuid || ++o;
var e = function e() {
i.off(t, e),
r.apply(n || this, arguments)
};
e._eventEmitterGuid = r._eventEmitterGuid,
this.on(t, e)
}
,
n.prototype.emit = function(r, e) {
var n = this;
if (this._listeners) {
e = e || {};
var t = this._listeners["before*"] || []
, i = this._listeners[r] || []
, o = this._listeners["after" + r] || []
, a = function(e, t) {
(e = e.slice()).forEach(function(e) {
e.call(n, {
type: r
}, t)
})
};
a(t, e),
a(i, e),
a(o, e)
}
}
,
t.default = n
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n, i = r(2), o = (n = i) && n.__esModule ? n : {
default: n
}, a = function() {
this._playbackHeartbeatInterval = null,
this._playheadShouldBeProgressing = !1,
this.on("playing", function() {
this._playheadShouldBeProgressing = !0
}),
this.on("play", this._startPlaybackHeartbeatInterval),
this.on("adbreakstart", this._startPlaybackHeartbeatInterval),
this.on("adplay", this._startPlaybackHeartbeatInterval),
this.on("seeking", this._startPlaybackHeartbeatInterval),
this.on("devicewake", this._startPlaybackHeartbeatInterval),
this.on("viewstart", this._startPlaybackHeartbeatInterval),
this.on("pause", this._stopPlaybackHeartbeatInterval),
this.on("ended", this._stopPlaybackHeartbeatInterval),
this.on("viewend", this._stopPlaybackHeartbeatInterval),
this.on("error", this._stopPlaybackHeartbeatInterval),
this.on("adpause", this._stopPlaybackHeartbeatInterval),
this.on("adbreakend", this._stopPlaybackHeartbeatInterval),
this.on("seeked", function() {
this.data.player_is_paused && this._stopPlaybackHeartbeatInterval()
}),
this.on("timeupdate", function() {
null !== this._playbackHeartbeatInterval && this.emit("playbackheartbeat")
}),
this.on("devicesleep", function(e, t) {
null !== this._playbackHeartbeatInterval && (o.default.clearInterval(this._playbackHeartbeatInterval),
this.emit("playbackheartbeatend", {
viewer_time: t.viewer_time
}),
this._playbackHeartbeatInterval = null)
})
};
a.prototype._startPlaybackHeartbeatInterval = function() {
var e = this;
null === this._playbackHeartbeatInterval && (this.emit("playbackheartbeat"),
this._playbackHeartbeatInterval = o.default.setInterval(function() {
e.emit("playbackheartbeat")
}, this.playbackHeartbeatTime))
}
,
a.prototype._stopPlaybackHeartbeatInterval = function() {
this._playheadShouldBeProgressing = !1,
null !== this._playbackHeartbeatInterval && (o.default.clearInterval(this._playbackHeartbeatInterval),
this.emit("playbackheartbeatend"),
this._playbackHeartbeatInterval = null)
}
,
t.default = a
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function() {
var t = this;
this.on("viewinit", function() {
t.viewErrored = !1
}),
this.on("error", function() {
try {
var e = t.errorTranslator({
player_error_code: t.data.player_error_code,
player_error_message: t.data.player_error_message
});
e ? (t.data.player_error_code = e.player_error_code,
t.data.player_error_message = e.player_error_message,
t.viewErrored = !0) : (delete t.data.player_error_code,
delete t.data.player_error_message)
} catch (e) {
t.mux.log.warn("Exception in error translator callback.", e),
t.viewErrored = !0
}
})
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n, i = r(1), o = (n = i) && n.__esModule ? n : {
default: n
}, a = function() {
this._watchTimeTrackerLastCheckedTime = null,
this.on("playbackheartbeat", this._updateWatchTime),
this.on("playbackheartbeatend", this._clearWatchTimeState)
};
a.prototype._updateWatchTime = function(e, t) {
var r = t.viewer_time;
null === this._watchTimeTrackerLastCheckedTime && (this._watchTimeTrackerLastCheckedTime = r),
(0,
o.default)(this.data, "view_watch_time", r - this._watchTimeTrackerLastCheckedTime),
this._watchTimeTrackerLastCheckedTime = r
}
,
a.prototype._clearWatchTimeState = function(e, t) {
this._updateWatchTime(e, t),
this._watchTimeTrackerLastCheckedTime = null
}
,
t.default = a
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n, i = r(1), o = (n = i) && n.__esModule ? n : {
default: n
}, a = function() {
this._playbackTimeTrackerLastPlayheadPosition = -1,
this.on("playbackheartbeat", this._updatePlaybackTime),
this.on("playbackheartbeatend", this._clearPlaybackTimeState),
this.on("seeking", this._clearPlaybackTimeState)
};
a.prototype._updatePlaybackTime = function() {
var e = this.data.player_playhead_time;
if (0 <= this._playbackTimeTrackerLastPlayheadPosition && e > this._playbackTimeTrackerLastPlayheadPosition) {
var t = e - this._playbackTimeTrackerLastPlayheadPosition;
t <= 1e3 && (0,
o.default)(this.data, "view_content_playback_time", t)
}
this._playbackTimeTrackerLastPlayheadPosition = e
}
,
a.prototype._clearPlaybackTimeState = function() {
this._updatePlaybackTime(),
this._playbackTimeTrackerLastPlayheadPosition = -1
}
,
t.default = a
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n = function() {
this.on("playbackheartbeat", this._updatePlayheadTime),
this.on("playbackheartbeatend", this._updatePlayheadTime),
this.on("timeupdate", this._updatePlayheadTime),
this.on("destroy", function() {
this.off("timeupdate", this._updatePlayheadTime)
})
};
n.prototype._updatePlayheadTime = function(e, t) {
if (t.player_playhead_time)
this.data.player_playhead_time = t.player_playhead_time;
else if (this.getPlayheadTime) {
var r = this.getPlayheadTime();
void 0 !== r && (this.data.player_playhead_time = r)
}
}
,
t.default = n
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n, i = r(1), o = (n = i) && n.__esModule ? n : {
default: n
}, a = function() {
this._lastCheckedTime = null,
this._lastPlayheadTime = null,
this._lastPlayheadTimeUpdatedTime = null,
this.on("playbackheartbeat", this._checkIfRebuffering),
this.on("playbackheartbeatend", this._cleanupRebufferTracker),
this.on("seeking", function() {
this._cleanupRebufferTracker(null, {
viewer_time: Date.now()
})
})
};
a.prototype._checkIfRebuffering = function(e, t) {
if (this.isSeeking || this.isAdBreak || !this._playheadShouldBeProgressing)
this._cleanupRebufferTracker(e, t);
else {
if (null === this._lastCheckedTime)
return this._prepareRebufferTrackerState(t.viewer_time),
void this._updateRebufferMetrics();
if (this._lastPlayheadTime === this.data.player_playhead_time) {
var r = t.viewer_time - this._lastPlayheadTimeUpdatedTime;
r >= this.sustainedRebufferThreshold && (this._rebuffering ? this._updateRebufferMetrics(t.viewer_time - this._lastCheckedTime) : (this._rebuffering = !0,
(0,
o.default)(this.data, "view_rebuffer_count", 1),
this._updateRebufferMetrics(r),
this.emit("rebufferstart"))),
this._lastCheckedTime = t.viewer_time
} else
this._cleanupRebufferTracker(e, t, !0)
}
}
,
a.prototype._clearRebufferTrackerState = function() {
this._lastCheckedTime = null,
this._lastPlayheadTime = null,
this._lastPlayheadTimeUpdatedTime = null
}
,
a.prototype._prepareRebufferTrackerState = function(e) {
this._lastCheckedTime = e,
this._lastPlayheadTime = this.data.player_playhead_time,
this._lastPlayheadTimeUpdatedTime = e
}
,
a.prototype._cleanupRebufferTracker = function(e, t) {
var r = 2 < arguments.length && void 0 !== arguments[2] && arguments[2];
if (this._rebuffering)
this._rebuffering = !1,
this._updateRebufferMetrics(t.viewer_time - this._lastCheckedTime),
this.emit("rebufferend", {
viewer_time: t.viewer_time
});
else {
if (null === this._lastCheckedTime)
return void this._updateRebufferMetrics();
var n = this.data.player_playhead_time - this._lastPlayheadTime
, i = t.viewer_time - this._lastPlayheadTimeUpdatedTime;
0 < n && i - n > this.minimumRebufferDuration ? ((0,
o.default)(this.data, "view_rebuffer_count", 1),
this._updateRebufferMetrics(i - n),
this.emit("rebufferstart", {
viewer_time: this._lastPlayheadTimeUpdatedTime
}),
this.emit("rebufferend", {
viewer_time: this._lastPlayheadTimeUpdatedTime + i - n
})) : this._updateRebufferMetrics()
}
r ? this._prepareRebufferTrackerState(t.viewer_time) : this._clearRebufferTrackerState()
}
,
a.prototype._updateRebufferMetrics = function(e) {
0 < e && (0,
o.default)(this.data, "view_rebuffer_duration", e),
0 <= this.data.view_watch_time && 0 < this.data.view_rebuffer_count && (this.data.view_rebuffer_frequency = this.data.view_rebuffer_count / this.data.view_watch_time,
this.data.view_rebuffer_percentage = this.data.view_rebuffer_duration / this.data.view_watch_time)
}
,
t.default = a
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n = function() {
this.on("viewinit", function() {
var e = this.data
, n = e.view_id;
if (!e.view_program_changed) {
var t = function(e, t) {
var r = t.viewer_time;
"playing" === e.type && void 0 === this.data.view_time_to_first_frame ? this.calculateTimeToFirstFrame(r || Date.now(), n) : "adplaying" !== e.type || void 0 !== this.data.view_time_to_first_frame && !this.inPrerollPosition() || this.calculateTimeToFirstFrame(r || Date.now(), n)
};
this.one("playing", t),
this.one("adplaying", t),
this.one("viewend", function() {
this.off("playing", t),
this.off("adplaying", t)
})
}
})
};
n.prototype.calculateTimeToFirstFrame = function(e, t) {
t === this.data.view_id && (this._updateWatchTime(null, {
viewer_time: e
}),
this.data.view_time_to_first_frame = this.data.view_watch_time,
(this.data.player_autoplay_on || this.data.video_is_autoplay) && this.NAVIGATION_START && (this.data.view_aggregate_startup_time = this.data.view_start + this.data.view_watch_time - this.NAVIGATION_START))
}
,
t.default = n
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function() {
var t = this;
this.on("viewinit", function() {
this._lastPlayheadPosition = -1
});
var e = ["playing", "hb"];
["pause", "rebufferstart", "seeking", "error", "adbreakstart", "hb"].forEach(function(e) {
t.on(e, function() {
if (0 <= this._lastPlayheadPosition && 0 <= this.data.player_playhead_time && 0 <= this._lastPlayerWidth && 0 < this._lastSourceWidth && 0 <= this._lastPlayerHeight && 0 < this._lastSourceHeight) {
var e = this.data.player_playhead_time - this._lastPlayheadPosition;
if (e < 0)
return void (this._lastPlayheadPosition = -1);
var t = Math.min(this._lastPlayerWidth / this._lastSourceWidth, this._lastPlayerHeight / this._lastSourceHeight)
, r = Math.max(0, t - 1)
, n = Math.max(0, 1 - t);
this.data.view_max_upscale_percentage = Math.max(this.data.view_max_upscale_percentage || 0, r),
this.data.view_max_downscale_percentage = Math.max(this.data.view_max_downscale_percentage || 0, n),
(0,
o.default)(this.data, "view_total_content_playback_time", e),
(0,
o.default)(this.data, "view_total_upscaling", r * e),
(0,
o.default)(this.data, "view_total_downscaling", n * e)
}
this._lastPlayheadPosition = -1
})
}),
e.forEach(function(e) {
t.on(e, function() {
this._lastPlayheadPosition = this.data.player_playhead_time,
this._lastPlayerWidth = this.data.player_width,
this._lastPlayerHeight = this.data.player_height,
this._lastSourceWidth = this.data.video_source_width,
this._lastSourceHeight = this.data.video_source_height
})
})
}
;
var n, i = r(1), o = (n = i) && n.__esModule ? n : {
default: n
}
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function() {
this.isSeeking = !1,
this.on("seeking", function(e, t) {
(0,
s.default)(this.data, t),
this._lastSeekingTime = Date.now(),
!1 === this.isSeeking && (this.isSeeking = !0,
this.send("seeking"))
}),
this.on("seeked", function() {
this.isSeeking = !1;
var e = this._lastSeekingTime || Date.now()
, t = Date.now() - e;
(0,
o.default)(this.data, "view_seek_count", 1),
(0,
o.default)(this.data, "view_seek_duration", t);
var r = this.data.view_max_seek_time || 0;
this.data.view_max_seek_time = Math.max(r, t)
}),
this.on("viewend", function() {
this.isSeeking = !1
})
}
;
var i = r(1)
, o = n(i)
, a = r(0)
, s = n(a)
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var c = function(e, t) {
if (Array.isArray(e))
return e;
if (Symbol.iterator in Object(e))
return function(e, t) {
var r = []
, n = !0
, i = !1
, o = void 0;
try {
for (var a, s = e[Symbol.iterator](); !(n = (a = s.next()).done) && (r.push(a.value),
!t || r.length !== t); n = !0)
;
} catch (e) {
i = !0,
o = e
} finally {
try {
!n && s.return && s.return()
} finally {
if (i)
throw o
}
}
return r
}(e, t);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}
, i = r(1)
, o = n(i)
, h = r(4)
, a = r(0)
, s = n(a)
, l = function(e, t) {
e.push(t),
e.sort(function(e, t) {
return e.viewer_time - t.viewer_time
})
}
, u = ["adbreakstart", "adrequest", "adresponse", "adplay", "adplaying", "adpause", "adended", "adbreakend", "aderror"]
, d = function() {
var t = this;
this.on("viewinit", function() {
this.isAdBreak = !1,
this._currentAdRequestNumber = 0,
this._currentAdResponseNumber = 0,
this._adRequests = [],
this._adResponses = [],
this._adHasPlayed = !1,
this._wouldBeNewAdPlay = !0,
this._prerollPlayTime = void 0
}),
u.forEach(function(e) {
return t.on(e, t._updateAdData)
});
var e = function() {
t.isAdBreak = !1
};
this.on("adbreakstart", function() {
this.isAdBreak = !0
}),
this.on("play", e),
this.on("playing", e),
this.on("viewend", e),
this.on("adrequest", function(e, t) {
t = (0,
s.default)({
ad_request_id: "generatedAdRequestId" + this._currentAdRequestNumber++
}, t),
l(this._adRequests, t),
(0,
o.default)(this.data, "view_ad_request_count"),
this.inPrerollPosition() && (this.data.view_preroll_requested = !0,
this._adHasPlayed || (0,
o.default)(this.data, "view_preroll_request_count"))
}),
this.on("adresponse", function(e, t) {
t = (0,
s.default)({
ad_request_id: "generatedAdRequestId" + this._currentAdResponseNumber++
}, t),
l(this._adResponses, t);
var r = this.findAdRequest(t.ad_request_id);
r && (0,
o.default)(this.data, "view_ad_request_time", Math.max(0, t.viewer_time - r.viewer_time))
}),
this.on("adplay", function(e, t) {
this._adHasPlayed = !0,
this._wouldBeNewAdPlay && (this._wouldBeNewAdPlay = !1,
(0,
o.default)(this.data, "view_ad_played_count")),
this.inPrerollPosition() && !this.data.view_preroll_played && (this.data.view_preroll_played = !0,
0 < this._adRequests.length && (this.data.view_preroll_request_time = Math.max(0, t.viewer_time - this._adRequests[0].viewer_time)),
this.data.view_start && (this.data.view_startup_preroll_request_time = Math.max(0, t.viewer_time - this.data.view_start)),
this._prerollPlayTime = t.viewer_time)
}),
this.on("adplaying", function(e, t) {
this.inPrerollPosition() && void 0 === this.data.view_preroll_load_time && void 0 !== this._prerollPlayTime && (this.data.view_preroll_load_time = t.viewer_time - this._prerollPlayTime,
this.data.view_startup_preroll_load_time = t.viewer_time - this._prerollPlayTime)
}),
this.on("adended", function() {
this._wouldBeNewAdPlay = !0
}),
this.on("aderror", function() {
this._wouldBeNewAdPlay = !0
})
};
d.prototype.inPrerollPosition = function() {
return void 0 === this.data.view_content_playback_time || this.data.view_content_playback_time <= 1e3
}
,
d.prototype.findAdRequest = function(e) {
for (var t = 0; t < this._adRequests.length; t++)
if (this._adRequests[t].ad_request_id === e)
return this._adRequests[t]
}
,
d.prototype._updateAdData = function(e, t) {
if (this.inPrerollPosition()) {
if (!this.data.view_preroll_ad_tag_hostname && t.ad_tag_url) {
var r = (0,
h.extractHostnameAndDomain)(t.ad_tag_url)
, n = c(r, 2)
, i = n[0]
, o = n[1];
this.data.view_preroll_ad_tag_domain = o,
this.data.view_preroll_ad_tag_hostname = i
}
if (!this.data.view_preroll_ad_asset_hostname && t.ad_asset_url) {
var a = (0,
h.extractHostnameAndDomain)(t.ad_asset_url)
, s = c(a, 2)
, l = s[0]
, u = s[1];
this.data.view_preroll_ad_asset_domain = u,
this.data.view_preroll_ad_asset_hostname = l
}
}
}
,
t.default = d
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function() {
var t = this
, r = void 0
, e = void 0
, n = function() {
r && ((0,
a.default)(t.data, "view_waiting_rebuffer_duration", Date.now() - r),
r = !1,
window.clearInterval(e))
}
, i = !1
, o = function() {
i = !1,
n()
};
this.on("waiting", function() {
i && ((0,
a.default)(t.data, "view_waiting_rebuffer_count", 1),
r = Date.now(),
e = window.setInterval(function() {
if (r) {
var e = Date.now();
(0,
a.default)(t.data, "view_waiting_rebuffer_duration", e - r),
r = e
}
}, 250))
}),
this.on("playing", function() {
n(),
i = !0
}),
this.on("pause", o),
this.on("seeking", o)
}
;
var n, i = r(1), a = (n = i) && n.__esModule ? n : {
default: n
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function() {
var e = this;
this.one("playbackheartbeat", a),
this.on("playbackheartbeatend", function() {
e.off("before*", s),
e.one("playbackheartbeat", a)
})
}
;
var n, i = r(0), o = (n = i) && n.__esModule ? n : {
default: n
}, a = function() {
this.lastWallClockTime = Date.now(),
this.on("before*", s)
}, s = function(e) {
var t = Date.now()
, r = this.lastWallClockTime;
3e4 < (this.lastWallClockTime = t) - r && (this.emit("devicesleep", {
viewer_time: r
}),
(0,
o.default)(this.data, {
viewer_time: r
}),
this.send("devicesleep"),
this.emit("devicewake", {
viewer_time: t
}),
(0,
o.default)(this.data, {
viewer_time: t
}),
this.send("devicewake"))
}
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
}
: function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
}
, s = r(39)
, i = r(3)
, l = n(i)
, o = r(43)
, a = n(o)
, u = r(9)
, h = n(u)
, d = r(15)
, p = n(d)
, f = r(44)
, v = n(f)
, y = r(46)
, m = n(y)
, _ = r(0)
, g = n(_)
, b = ["env_key", "view_id", "view_sequence_number", "player_sequence_number", "beacon_domain", "player_playhead_time", "viewer_time", "mux_api_version", "event", "video_id"]
, T = ["viewstart", "error", "ended", "viewend"]
, w = function(e, t) {
var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
this.mux = e,
this.envKey = t,
this.eventQueue = new v.default((0,
a.default)(t, r.beaconDomain)),
this.previousBeaconData = null,
this.lastEventTime = null,
this.sampleRate = r.sampleRate,
this.disableCookies = r.disableCookies,
this.respectDoNotTrack = r.respectDoNotTrack,
this.pageLevelData = {
mux_api_version: this.mux.API_VERSION,
mux_embed_version: this.mux.VERSION,
page_url: window.location.href,
viewer_application_name: m.default.name,
viewer_application_version: m.default.version,
viewer_application_engine: m.default.layout,
viewer_device_name: m.default.product,
viewer_device_category: "",
viewer_device_manufacturer: m.default.manufacturer,
viewer_os_family: m.default.os && m.default.os.family,
viewer_os_architecture: m.default.os && m.default.os.architecture,
viewer_os_version: m.default.os && m.default.os.version
},
this.viewerData = this.disableCookies ? {} : (0,
s.getAndUpdateViewerData)()
};
w.prototype.send = function(e, t) {
if (e) {
if (this.respectDoNotTrack && (0,
h.default)())
return l.default.info("Not sending `" + e + "` because Do Not Track is enabled in your browser");
if (!t || "object" !== (void 0 === t ? "undefined" : c(t)))
return l.default.error("A data object was expected in send() but was not provided");
var r = this.disableCookies ? {} : (0,
s.getAndUpdateSessionData)()
, n = {};
(0,
g.default)(n, this.pageLevelData),
(0,
g.default)(n, t),
(0,
g.default)(n, r),
(0,
g.default)(n, this.viewerData),
n.event = e,
n.env_key = this.envKey,
n.user_id && (n.viewer_user_id = n.user_id,
delete n.user_id);
var i = n.mux_sample_number >= this.sampleRate
, o = this._deduplicateBeaconData(e, n)
, a = (0,
p.default)(o);
if (this.lastEventTime = Date.now(),
i)
return l.default.info("Not sending event due to sample rate restriction", e, n, a);
if (!this.envKey)
return l.default.info("Not sending event due to missing environment key", e, n, a);
if (!this.rateLimited)
if (l.default.info("Sending event", e, n, a),
this.rateLimited = !this.eventQueue.queueEvent(e, a),
this.mux.WINDOW_UNLOADING && "viewend" === e)
this.eventQueue.destroy(!0);
else if (0 <= T.indexOf(e) && this.eventQueue.flushEvents(),
this.rateLimited)
return n.event = "eventrateexceeded",
a = (0,
p.default)(n),
this.eventQueue.queueEvent(n.event, a),
l.default.error("Beaconing disabled due to rate limit.")
}
}
,
w.prototype.destroy = function() {
this.eventQueue.destroy(!1)
}
,
w.prototype._deduplicateBeaconData = function(e, a) {
var s = this
, l = {}
, t = a.view_id;
if (!t || "viewstart" === e || "viewend" === e || !this.previousBeaconData || 6e5 <= Date.now() - this.lastEventTime)
l = (0,
g.default)({}, a),
t && (this.previousBeaconData = l),
t && "viewend" === e && (this.previousBeaconData = null);
else {
var u = 0 === e.indexOf("request");
Object.keys(a).forEach(function(e) {
var t, r, n, i, o = a[e];
(o !== s.previousBeaconData[e] || -1 < b.indexOf(e) || (t = u,
r = e,
n = o,
i = s.previousBeaconData[e],
t && 0 === r.indexOf("request_") && ("request_response_headers" === r || "object" !== (void 0 === n ? "undefined" : c(n)) || "object" !== (void 0 === i ? "undefined" : c(i)) || Object.keys(n || {}).length !== Object.keys(i || {}).length))) && (l[e] = o,
s.previousBeaconData[e] = o)
})
}
return l
}
,
t.default = w
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.getAndUpdateSessionData = t.getAndUpdateViewerData = void 0;
var i = r(12)
, o = n(i)
, a = r(42)
, s = n(a)
, l = r(6)
, u = function() {
var t = void 0;
try {
t = o.default.parse(s.default.get("muxData") || "")
} catch (e) {
t = {}
}
return t
}
, c = function(e) {
s.default.set("muxData", o.default.stringify(e), {
expires: 7300
})
};
t.getAndUpdateViewerData = function() {
var e = u();
return e.mux_viewer_id = e.mux_viewer_id || (0,
l.generateUUID)(),
e.msn = e.msn || Math.random(),
c(e),
{
mux_viewer_id: e.mux_viewer_id,
mux_sample_number: e.msn
}
}
,
t.getAndUpdateSessionData = function() {
var e = u()
, t = Date.now();
return e.session_start && (e.sst = e.session_start,
delete e.session_start),
e.session_id && (e.sid = e.session_id,
delete e.session_id),
e.session_expires && (e.sex = e.session_expires,
delete e.session_expires),
(!e.sex || e.sex < t) && (e.sid = (0,
l.generateUUID)(),
e.sst = t),
e.sex = t + 15e5,
c(e),
{
session_id: e.sid,
session_start: e.sst,
session_expires: e.sex
}
}
}
, function(e, t, r) {
"use strict";
var k = r(13)
, S = r(14)
, C = {
brackets: function(e) {
return e + "[]"
},
indices: function(e, t) {
return e + "[" + t + "]"
},
repeat: function(e) {
return e
}
}
, n = Date.prototype.toISOString
, E = {
delimiter: "&",
encode: !0,
encoder: k.encode,
encodeValuesOnly: !1,
serializeDate: function(e) {
return n.call(e)
},
skipNulls: !1,
strictNullHandling: !1
}
, x = function e(t, r, n, i, o, a, s, l, u, c, h, d) {
var p = t;
if ("function" == typeof s)
p = s(r, p);
else if (p instanceof Date)
p = c(p);
else if (null === p) {
if (i)
return a && !d ? a(r, E.encoder) : r;
p = ""
}
if ("string" == typeof p || "number" == typeof p || "boolean" == typeof p || k.isBuffer(p))
return a ? [h(d ? r : a(r, E.encoder)) + "=" + h(a(p, E.encoder))] : [h(r) + "=" + h(String(p))];
var f, v = [];
if (void 0 === p)
return v;
if (Array.isArray(s))
f = s;
else {
var y = Object.keys(p);
f = l ? y.sort(l) : y
}
for (var m = 0; m < f.length; ++m) {
var _ = f[m];
o && null === p[_] || (v = Array.isArray(p) ? v.concat(e(p[_], n(r, _), n, i, o, a, s, l, u, c, h, d)) : v.concat(e(p[_], r + (u ? "." + _ : "[" + _ + "]"), n, i, o, a, s, l, u, c, h, d)))
}
return v
};
e.exports = function(e, t) {
var r = e
, n = t ? k.assign({}, t) : {};
if (null !== n.encoder && void 0 !== n.encoder && "function" != typeof n.encoder)
throw new TypeError("Encoder has to be a function.");
var i = void 0 === n.delimiter ? E.delimiter : n.delimiter
, o = "boolean" == typeof n.strictNullHandling ? n.strictNullHandling : E.strictNullHandling
, a = "boolean" == typeof n.skipNulls ? n.skipNulls : E.skipNulls
, s = "boolean" == typeof n.encode ? n.encode : E.encode
, l = "function" == typeof n.encoder ? n.encoder : E.encoder
, u = "function" == typeof n.sort ? n.sort : null
, c = void 0 !== n.allowDots && n.allowDots
, h = "function" == typeof n.serializeDate ? n.serializeDate : E.serializeDate
, d = "boolean" == typeof n.encodeValuesOnly ? n.encodeValuesOnly : E.encodeValuesOnly;
if (void 0 === n.format)
n.format = S.default;
else if (!Object.prototype.hasOwnProperty.call(S.formatters, n.format))
throw new TypeError("Unknown format option provided.");
var p, f, v = S.formatters[n.format];
"function" == typeof n.filter ? (f = n.filter,
r = f("", r)) : Array.isArray(n.filter) && (f = n.filter,
p = f);
var y, m = [];
if ("object" != typeof r || null === r)
return "";
y = n.arrayFormat in C ? n.arrayFormat : "indices"in n ? n.indices ? "indices" : "repeat" : "indices";
var _ = C[y];
p || (p = Object.keys(r)),
u && p.sort(u);
for (var g = 0; g < p.length; ++g) {
var b = p[g];
a && null === r[b] || (m = m.concat(x(r[b], b, _, o, a, s ? l : null, f, u, c, h, v, d)))
}
var T = m.join(i)
, w = !0 === n.addQueryPrefix ? "?" : "";
return 0 < T.length ? w + T : ""
}
}
, function(e, t, r) {
"use strict";
var u = r(13)
, d = Object.prototype.hasOwnProperty
, p = {
allowDots: !1,
allowPrototypes: !1,
arrayLimit: 20,
decoder: u.decode,
delimiter: "&",
depth: 5,
parameterLimit: 1e3,
plainObjects: !1,
strictNullHandling: !1
}
, c = function(e, t, r) {
if (e) {
var n = r.allowDots ? e.replace(/\.([^.[]+)/g, "[$1]") : e
, i = /(\[[^[\]]*])/g
, o = /(\[[^[\]]*])/.exec(n)
, a = o ? n.slice(0, o.index) : n
, s = [];
if (a) {
if (!r.plainObjects && d.call(Object.prototype, a) && !r.allowPrototypes)
return;
s.push(a)
}
for (var l = 0; null !== (o = i.exec(n)) && l < r.depth; ) {
if (l += 1,
!r.plainObjects && d.call(Object.prototype, o[1].slice(1, -1)) && !r.allowPrototypes)
return;
s.push(o[1])
}
return o && s.push("[" + n.slice(o.index) + "]"),
function(e, t, r) {
for (var n = t, i = e.length - 1; 0 <= i; --i) {
var o, a = e[i];
if ("[]" === a)
o = (o = []).concat(n);
else {
o = r.plainObjects ? Object.create(null) : {};
var s = "[" === a.charAt(0) && "]" === a.charAt(a.length - 1) ? a.slice(1, -1) : a
, l = parseInt(s, 10);
!isNaN(l) && a !== s && String(l) === s && 0 <= l && r.parseArrays && l <= r.arrayLimit ? (o = [])[l] = n : o[s] = n
}
n = o
}
return n
}(s, t, r)
}
};
e.exports = function(e, t) {
var r = t ? u.assign({}, t) : {};
if (null !== r.decoder && void 0 !== r.decoder && "function" != typeof r.decoder)
throw new TypeError("Decoder has to be a function.");
if (r.ignoreQueryPrefix = !0 === r.ignoreQueryPrefix,
r.delimiter = "string" == typeof r.delimiter || u.isRegExp(r.delimiter) ? r.delimiter : p.delimiter,
r.depth = "number" == typeof r.depth ? r.depth : p.depth,
r.arrayLimit = "number" == typeof r.arrayLimit ? r.arrayLimit : p.arrayLimit,
r.parseArrays = !1 !== r.parseArrays,
r.decoder = "function" == typeof r.decoder ? r.decoder : p.decoder,
r.allowDots = "boolean" == typeof r.allowDots ? r.allowDots : p.allowDots,
r.plainObjects = "boolean" == typeof r.plainObjects ? r.plainObjects : p.plainObjects,
r.allowPrototypes = "boolean" == typeof r.allowPrototypes ? r.allowPrototypes : p.allowPrototypes,
r.parameterLimit = "number" == typeof r.parameterLimit ? r.parameterLimit : p.parameterLimit,
r.strictNullHandling = "boolean" == typeof r.strictNullHandling ? r.strictNullHandling : p.strictNullHandling,
"" === e || null == e)
return r.plainObjects ? Object.create(null) : {};
for (var n = "string" == typeof e ? function(e, t) {
for (var r = {}, n = t.ignoreQueryPrefix ? e.replace(/^\?/, "") : e, i = t.parameterLimit === 1 / 0 ? void 0 : t.parameterLimit, o = n.split(t.delimiter, i), a = 0; a < o.length; ++a) {
var s, l, u = o[a], c = u.indexOf("]="), h = -1 === c ? u.indexOf("=") : c + 1;
l = -1 === h ? (s = t.decoder(u, p.decoder),
t.strictNullHandling ? null : "") : (s = t.decoder(u.slice(0, h), p.decoder),
t.decoder(u.slice(h + 1), p.decoder)),
d.call(r, s) ? r[s] = [].concat(r[s]).concat(l) : r[s] = l
}
return r
}(e, r) : e, i = r.plainObjects ? Object.create(null) : {}, o = Object.keys(n), a = 0; a < o.length; ++a) {
var s = o[a]
, l = c(s, n[s], r);
i = u.merge(i, l, r)
}
return u.compact(i)
}
}
, function(i, o, a) {
"use strict";
var s, l, u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
}
: function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
}
;
!function(e) {
var t = !1;
if (void 0 !== (l = "function" == typeof (s = e) ? s.call(o, a, o, i) : s) && (i.exports = l),
t = !0,
"object" === u(o) && (i.exports = e(),
t = !0),
!t) {
var r = window.Cookies
, n = window.Cookies = e();
n.noConflict = function() {
return window.Cookies = r,
n
}
}
}(function() {
var p = function() {
for (var e = 0, t = {}; e < arguments.length; e++) {
var r = arguments[e];
for (var n in r)
t[n] = r[n]
}
return t
};
return function e(h) {
function d(e, t, r) {
var n;
if ("undefined" != typeof document) {
if (1 < arguments.length) {
if ("number" == typeof (r = p({
path: "/"
}, d.defaults, r)).expires) {
var i = new Date;
i.setMilliseconds(i.getMilliseconds() + 864e5 * r.expires),
r.expires = i
}
try {
n = JSON.stringify(t),
/^[\{\[]/.test(n) && (t = n)
} catch (e) {}
return t = h.write ? h.write(t, e) : encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent),
e = (e = (e = encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)).replace(/[\(\)]/g, escape),
document.cookie = [e, "=", t, r.expires ? "; expires=" + r.expires.toUTCString() : "", r.path ? "; path=" + r.path : "", r.domain ? "; domain=" + r.domain : "", r.secure ? "; secure" : ""].join("")
}
e || (n = {});
for (var o = document.cookie ? document.cookie.split("; ") : [], a = /(%[0-9A-Z]{2})+/g, s = 0; s < o.length; s++) {
var l = o[s].split("=")
, u = l.slice(1).join("=");
'"' === u.charAt(0) && (u = u.slice(1, -1));
try {
var c = l[0].replace(a, decodeURIComponent);
if (u = h.read ? h.read(u, c) : h(u, c) || u.replace(a, decodeURIComponent),
this.json)
try {
u = JSON.parse(u)
} catch (e) {}
if (e === c) {
n = u;
break
}
e || (n[c] = u)
} catch (e) {}
}
return n
}
}
return (d.set = d).get = function(e) {
return d.call(d, e)
}
,
d.getJSON = function() {
return d.apply({
json: !0
}, [].slice.call(arguments))
}
,
d.defaults = {},
d.remove = function(e, t) {
d(e, "", p(t, {
expires: -1
}))
}
,
d.withConverter = e,
d
}(function() {})
})
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(e, t) {
return t = t || "litix.io",
(e = e || "").match(/^[a-z0-9]+$/) ? "https://" + e + "." + t : "https://img.litix.io/a.gif"
}
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i = r(2)
, o = n(i)
, a = r(3)
, s = n(a)
, l = r(45)
, u = n(l)
, c = r(0)
, h = n(c)
, d = r(15)
, p = n(d)
, f = !!o.default.XMLHttpRequest && "withCredentials"in new o.default.XMLHttpRequest
, v = {
maxBeaconSize: 300,
maxQueueLength: 3600,
baseTimeBetweenBeacons: 5e3
}
, y = function(e, t) {
this._beaconUrl = e || "https://img.litix.io",
this._eventQueue = [],
this._postInFlight = !1,
this._failureCount = 0,
this._sendTimeout = !1,
this._options = (0,
h.default)({}, v, t)
};
y.prototype.queueEvent = function(e, t) {
var r = (0,
h.default)({}, t);
return f ? (this._eventQueue.length <= this._options.maxQueueLength || "eventrateexceeded" === e) && (this._eventQueue.push(r),
this._sendTimeout || this._startBeaconSending(),
this._eventQueue.length <= this._options.maxQueueLength) : (u.default.send(this._beaconUrl, r),
!0)
}
,
y.prototype.flushEvents = function() {
f && (this._eventQueue.length && this._sendBeaconQueue(),
this._startBeaconSending())
}
,
y.prototype.destroy = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];
this.destroyed = !0,
e ? this._clearBeaconQueue() : this.flushEvents(),
o.default.clearTimeout(this._sendTimeout)
}
,
y.prototype._clearBeaconQueue = function() {
var e = o.default.navigator
, t = this._eventQueue.length > this._options.maxBeaconSize ? this._eventQueue.length - this._options.maxBeaconSize : 0
, r = this._eventQueue.slice(t);
if (0 < t && (0,
h.default)(r[r.length - 1], (0,
p.default)({
mux_view_message: "event queue truncated"
})),
e.sendBeacon)
e.sendBeacon(this._beaconUrl, JSON.stringify({
events: r
}));
else if (o.default.XMLHttpRequest) {
var n = new o.default.XMLHttpRequest;
n.open("POST", this._beaconUrl),
n.setRequestHeader("Content-Type", "application/json"),
n.send(JSON.stringify({
events: r
}))
} else
u.default.send(this._beaconUrl, r[r.length - 1])
}
,
y.prototype._sendBeaconQueue = function() {
var e = this;
if (o.default.XMLHttpRequest && !this._postInFlight) {
var t = new o.default.XMLHttpRequest
, r = this._eventQueue.slice(0, this._options.maxBeaconSize);
this._eventQueue = this._eventQueue.slice(this._options.maxBeaconSize),
this._postInFlight = !0,
t.onreadystatechange = function() {
4 === t.readyState && (200 !== t.status ? (e._eventQueue = r.concat(e._eventQueue),
e._failureCount += 1,
s.default.info("Error sending beacon: " + t.status),
s.default.info(t.responseText)) : e._failureCount = 0,
e._postInFlight = !1)
}
,
t.open("POST", this._beaconUrl),
t.setRequestHeader("Content-Type", "application/json"),
t.send(JSON.stringify({
events: r
}))
}
}
,
y.prototype._getNextBeaconTime = function() {
if (!this._failureCount)
return this._options.baseTimeBetweenBeacons;
var e = Math.pow(2, this._failureCount - 1);
return (1 + (e *= Math.random())) * this._options.baseTimeBetweenBeacons
}
,
y.prototype._startBeaconSending = function() {
var e = this;
o.default.clearTimeout(this._sendTimeout),
this.destroyed || (this._sendTimeout = o.default.setTimeout(function() {
e._eventQueue.length && e._sendBeaconQueue(),
e._startBeaconSending()
}, this._getNextBeaconTime()))
}
,
t.default = y
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i = r(12)
, a = n(i)
, o = r(2)
, s = n(o)
, l = {
send: function(e, t) {
function r() {
n.src = o + (i ? "&rc=" + i : "")
}
var n = new Image
, i = 0
, o = e + "?" + a.default.stringify(t);
return n.addEventListener("error", function() {
3 < i || s.default.setTimeout(function() {
i++,
r()
}, 5e3 * i)
}),
r(),
n
}
};
t.default = l
}
, function(e, d, p) {
(function(u, c) {
var h;
(function() {
"use strict";
function t(e) {
return (e = String(e)).charAt(0).toUpperCase() + e.slice(1)
}
function R(e) {
return e = q(e),
/^(?:webOS|i(?:OS|P))/.test(e) ? e : t(e)
}
function N(e, t) {
for (var r in e)
s.call(e, r) && t(e[r], r, e)
}
function L(e) {
return null == e ? t(e) : G.call(e).slice(8, -1)
}
function F(e, t) {
var r = null != e ? typeof e[t] : "number";
return !(/^(?:boolean|number|string|undefined)$/.test(r) || "object" == r && !e[t])
}
function B(e) {
return String(e).replace(/([ -])(?!$)/g, "$1?")
}
function H(r, n) {
var i = null;
return function(e, t) {
var r = -1
, n = e ? e.length : 0;
if ("number" == typeof n && -1 < n && n <= o)
for (; ++r < n; )
t(e[r], r, e);
else
N(e, t)
}(r, function(e, t) {
i = n(i, e, t, r)
}),
i
}
function q(e) {
return String(e).replace(/^ +| +$/g, "")
}
var e = {
function: !0,
object: !0
}
, V = e[typeof window] && window || this
, W = V
, r = e[typeof d] && d
, n = e[typeof u] && u && !u.nodeType && u
, i = r && n && "object" == typeof c && c;
!i || i.global !== i && i.window !== i && i.self !== i || (V = i);
var o = Math.pow(2, 53) - 1
, U = /\bOpera/
, z = this
, a = Object.prototype
, s = a.hasOwnProperty
, G = a.toString
, l = function e(s) {
function t(e) {
return H(e, function(e, t) {
var r = t.pattern || B(t);
return !e && (e = RegExp("\\b" + r + " *\\d+[.\\w_]*", "i").exec(s) || RegExp("\\b" + r + " *\\w+-[\\w]*", "i").exec(s) || RegExp("\\b" + r + "(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)", "i").exec(s)) && ((e = String(t.label && !RegExp(r, "i").test(t.label) ? t.label : e).split("/"))[1] && !/[\d.]+/.test(e[0]) && (e[0] += " " + e[1]),
t = t.label || t,
e = R(e[0].replace(RegExp(r, "i"), t).replace(RegExp("; *(?:" + t + "[_-])?", "i"), " ").replace(RegExp("(" + t + ")[-_.]?(\\w)", "i"), "$1 $2"))),
e
})
}
function r() {
return this.description || ""
}
var n = V
, i = s && "object" == typeof s && "String" != L(s);
i && (n = s,
s = null);
var o = n.navigator || {}
, a = o.userAgent || "";
s || (s = a);
var l, u, c, h = i || z == W, d = i ? !!o.likeChrome : /\bChrome\b/.test(s) && !/internal|\n/i.test(G.toString()), p = i ? "Object" : "ScriptBridgingProxyObject", f = i ? "Object" : "Environment", v = i && n.java ? "JavaPackage" : L(n.java), y = i ? "Object" : "RuntimeObject", m = /\bJava/.test(v) && n.java, _ = m && L(n.environment) == f, g = m ? "a" : "α", b = m ? "b" : "β", T = n.document || {}, w = n.operamini || n.opera, k = U.test(k = i && w ? w["[[Class]]"] : L(w)) ? k : w = null, S = s, C = [], E = null, x = s == a, j = x && w && "function" == typeof w.version && w.version(), P = H([{
label: "EdgeHTML",
pattern: "Edge"
}, "Trident", {
label: "WebKit",
pattern: "AppleWebKit"
}, "iCab", "Presto", "NetFront", "Tasman", "KHTML", "Gecko"], function(e, t) {
return e || RegExp("\\b" + (t.pattern || B(t)) + "\\b", "i").exec(s) && (t.label || t)
}), O = H(["Adobe AIR", "Arora", "Avant Browser", "Breach", "Camino", "Electron", "Epiphany", "Fennec", "Flock", "Galeon", "GreenBrowser", "iCab", "Iceweasel", "K-Meleon", "Konqueror", "Lunascape", "Maxthon", {
label: "Microsoft Edge",
pattern: "Edge"
}, "Midori", "Nook Browser", "PaleMoon", "PhantomJS", "Raven", "Rekonq", "RockMelt", {
label: "Samsung Internet",
pattern: "SamsungBrowser"
}, "SeaMonkey", {
label: "Silk",
pattern: "(?:Cloud9|Silk-Accelerated)"
}, "Sleipnir", "SlimBrowser", {
label: "SRWare Iron",
pattern: "Iron"
}, "Sunrise", "Swiftfox", "Waterfox", "WebPositive", "Opera Mini", {
label: "Opera Mini",
pattern: "OPiOS"
}, "Opera", {
label: "Opera",
pattern: "OPR"
}, "Chrome", {
label: "Chrome Mobile",
pattern: "(?:CriOS|CrMo)"
}, {
label: "Firefox",
pattern: "(?:Firefox|Minefield)"
}, {
label: "Firefox for iOS",
pattern: "FxiOS"
}, {
label: "IE",
pattern: "IEMobile"
}, {
label: "IE",
pattern: "MSIE"
}, "Safari"], function(e, t) {
return e || RegExp("\\b" + (t.pattern || B(t)) + "\\b", "i").exec(s) && (t.label || t)
}), A = t([{
label: "BlackBerry",
pattern: "BB10"
}, "BlackBerry", {
label: "Galaxy S",
pattern: "GT-I9000"
}, {
label: "Galaxy S2",
pattern: "GT-I9100"
}, {
label: "Galaxy S3",
pattern: "GT-I9300"
}, {
label: "Galaxy S4",
pattern: "GT-I9500"
}, {
label: "Galaxy S5",
pattern: "SM-G900"
}, {
label: "Galaxy S6",
pattern: "SM-G920"
}, {
label: "Galaxy S6 Edge",
pattern: "SM-G925"
}, {
label: "Galaxy S7",
pattern: "SM-G930"
}, {
label: "Galaxy S7 Edge",
pattern: "SM-G935"
}, "Google TV", "Lumia", "iPad", "iPod", "iPhone", "Kindle", {
label: "Kindle Fire",
pattern: "(?:Cloud9|Silk-Accelerated)"
}, "Nexus", "Nook", "PlayBook", "PlayStation Vita", "PlayStation", "TouchPad", "Transformer", {
label: "Wii U",
pattern: "WiiU"
}, "Wii", "Xbox One", {
label: "Xbox 360",
pattern: "Xbox"
}, "Xoom"]), M = H({
Apple: {
iPad: 1,
iPhone: 1,
iPod: 1
},
Archos: {},
Amazon: {
Kindle: 1,
"Kindle Fire": 1
},
Asus: {
Transformer: 1
},
"Barnes & Noble": {
Nook: 1
},
BlackBerry: {
PlayBook: 1
},
Google: {
"Google TV": 1,
Nexus: 1
},
HP: {
TouchPad: 1
},
HTC: {},
LG: {},
Microsoft: {
Xbox: 1,
"Xbox One": 1
},
Motorola: {
Xoom: 1
},
Nintendo: {
"Wii U": 1,
Wii: 1
},
Nokia: {
Lumia: 1
},
Samsung: {
"Galaxy S": 1,
"Galaxy S2": 1,
"Galaxy S3": 1,
"Galaxy S4": 1
},
Sony: {
PlayStation: 1,
"PlayStation Vita": 1
}
}, function(e, t, r) {
return e || (t[A] || t[/^[a-z]+(?: +[a-z]+\b)*/i.exec(A)] || RegExp("\\b" + B(r) + "(?:\\b|\\w*\\d)", "i").exec(s)) && r
}), D = H(["Windows Phone", "Android", "CentOS", {
label: "Chrome OS",
pattern: "CrOS"
}, "Debian", "Fedora", "FreeBSD", "Gentoo", "Haiku", "Kubuntu", "Linux Mint", "OpenBSD", "Red Hat", "SuSE", "Ubuntu", "Xubuntu", "Cygwin", "Symbian OS", "hpwOS", "webOS ", "webOS", "Tablet OS", "Tizen", "Linux", "Mac OS X", "Macintosh", "Mac", "Windows 98;", "Windows "], function(e, t) {
var r, n, i, o, a = t.pattern || B(t);
return !e && (e = RegExp("\\b" + a + "(?:/[\\d.]+|[ \\w.]*)", "i").exec(s)) && (r = e,
n = a,
i = t.label || t,
o = {
"10.0": "10",
6.4: "10 Technical Preview",
6.3: "8.1",
6.2: "8",
6.1: "Server 2008 R2 / 7",
"6.0": "Server 2008 / Vista",
5.2: "Server 2003 / XP 64-bit",
5.1: "XP",
5.01: "2000 SP1",
"5.0": "2000",
"4.0": "NT",
"4.90": "ME"
},
n && i && /^Win/i.test(r) && !/^Windows Phone /i.test(r) && (o = o[/[\d.]+$/.exec(r)]) && (r = "Windows " + o),
r = String(r),
n && i && (r = r.replace(RegExp(n, "i"), i)),
e = r = R(r.replace(/ ce$/i, " CE").replace(/\bhpw/i, "web").replace(/\bMacintosh\b/, "Mac OS").replace(/_PowerPC\b/i, " OS").replace(/\b(OS X) [^ \d]+/i, "$1").replace(/\bMac (OS X)\b/, "$1").replace(/\/(\d)/, " $1").replace(/_/g, ".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i, "").replace(/\bx86\.64\b/gi, "x86_64").replace(/\b(Windows Phone) OS\b/, "$1").replace(/\b(Chrome OS \w+) [\d.]+\b/, "$1").split(" on ")[0])),
e
});
if (P && (P = [P]),
M && !A && (A = t([M])),
(l = /\bGoogle TV\b/.exec(A)) && (A = l[0]),
/\bSimulator\b/i.test(s) && (A = (A ? A + " " : "") + "Simulator"),
"Opera Mini" == O && /\bOPiOS\b/.test(s) && C.push("running in Turbo/Uncompressed mode"),
"IE" == O && /\blike iPhone OS\b/.test(s) ? (l = e(s.replace(/like iPhone OS/, "")),
M = l.manufacturer,
A = l.product) : /^iP/.test(A) ? (O || (O = "Safari"),
D = "iOS" + ((l = / OS ([\d_]+)/i.exec(s)) ? " " + l[1].replace(/_/g, ".") : "")) : "Konqueror" != O || /buntu/i.test(D) ? M && "Google" != M && (/Chrome/.test(O) && !/\bMobile Safari\b/i.test(s) || /\bVita\b/.test(A)) || /\bAndroid\b/.test(D) && /^Chrome/.test(O) && /\bVersion\//i.test(s) ? (O = "Android Browser",
D = /\bAndroid\b/.test(D) ? D : "Android") : "Silk" == O ? (/\bMobi/i.test(s) || (D = "Android",
C.unshift("desktop mode")),
/Accelerated *= *true/i.test(s) && C.unshift("accelerated")) : "PaleMoon" == O && (l = /\bFirefox\/([\d.]+)\b/.exec(s)) ? C.push("identifying as Firefox " + l[1]) : "Firefox" == O && (l = /\b(Mobile|Tablet|TV)\b/i.exec(s)) ? (D || (D = "Firefox OS"),
A || (A = l[1])) : !O || (l = !/\bMinefield\b/i.test(s) && /\b(?:Firefox|Safari)\b/.exec(O)) ? (O && !A && /[\/,]|^[^(]+?\)/.test(s.slice(s.indexOf(l + "/") + 8)) && (O = null),
(l = A || M || D) && (A || M || /\b(?:Android|Symbian OS|Tablet OS|webOS)\b/.test(D)) && (O = /[a-z]+(?: Hat)?/i.exec(/\bAndroid\b/.test(D) ? D : l) + " Browser")) : "Electron" == O && (l = (/\bChrome\/([\d.]+)\b/.exec(s) || 0)[1]) && C.push("Chromium " + l) : D = "Kubuntu",
j || (c = ["(?:Cloud9|CriOS|CrMo|Edge|FxiOS|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$))", "Version", B(O), "(?:Firefox|Minefield|NetFront)"],
j = H(c, function(e, t) {
return e || (RegExp(t + "(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)", "i").exec(s) || 0)[1] || null
})),
(l = ("iCab" == P && 3 < parseFloat(j) ? "WebKit" : /\bOpera\b/.test(O) && (/\bOPR\b/.test(s) ? "Blink" : "Presto")) || /\b(?:Midori|Nook|Safari)\b/i.test(s) && !/^(?:Trident|EdgeHTML)$/.test(P) && "WebKit" || !P && /\bMSIE\b/i.test(s) && ("Mac OS" == D ? "Tasman" : "Trident") || "WebKit" == P && /\bPlayStation\b(?! Vita\b)/i.test(O) && "NetFront") && (P = [l]),
"IE" == O && (l = (/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(s) || 0)[1]) ? (O += " Mobile",
D = "Windows Phone " + (/\+$/.test(l) ? l : l + ".x"),
C.unshift("desktop mode")) : /\bWPDesktop\b/i.test(s) ? (O = "IE Mobile",
D = "Windows Phone 8.x",
C.unshift("desktop mode"),
j || (j = (/\brv:([\d.]+)/.exec(s) || 0)[1])) : "IE" != O && "Trident" == P && (l = /\brv:([\d.]+)/.exec(s)) && (O && C.push("identifying as " + O + (j ? " " + j : "")),
O = "IE",
j = l[1]),
x) {
if (F(n, "global"))
if (m && (l = m.lang.System,
S = l.getProperty("os.arch"),
D = D || l.getProperty("os.name") + " " + l.getProperty("os.version")),
h && F(n, "system") && (l = [n.system])[0]) {
D || (D = l[0].os || null);
try {
l[1] = n.require("ringo/engine").version,
j = l[1].join("."),
O = "RingoJS"
} catch (s) {
l[0].global.system == n.system && (O = "Narwhal")
}
} else
"object" == typeof n.process && !n.process.browser && (l = n.process) ? "object" == typeof l.versions ? "string" == typeof l.versions.electron ? (C.push("Node " + l.versions.node),
O = "Electron",
j = l.versions.electron) : "string" == typeof l.versions.nw && (C.push("Chromium " + j, "Node " + l.versions.node),
O = "NW.js",
j = l.versions.nw) : (O = "Node.js",
S = l.arch,
D = l.platform,
j = (j = /[\d.]+/.exec(l.version)) ? j[0] : "unknown") : _ && (O = "Rhino");
else
L(l = n.runtime) == p ? (O = "Adobe AIR",
D = l.flash.system.Capabilities.os) : L(l = n.phantom) == y ? (O = "PhantomJS",
j = (l = l.version || null) && l.major + "." + l.minor + "." + l.patch) : "number" == typeof T.documentMode && (l = /\bTrident\/(\d+)/i.exec(s)) ? (j = [j, T.documentMode],
(l = +l[1] + 4) != j[1] && (C.push("IE " + j[1] + " mode"),
P && (P[1] = ""),
j[1] = l),
j = "IE" == O ? String(j[1].toFixed(1)) : j[0]) : "number" == typeof T.documentMode && /^(?:Chrome|Firefox)\b/.test(O) && (C.push("masking as " + O + " " + j),
O = "IE",
j = "11.0",
P = ["Trident"],
D = "Windows");
D = D && R(D)
}
if (j && (l = /(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(j) || /(?:alpha|beta)(?: ?\d)?/i.exec(s + ";" + (x && o.appMinorVersion)) || /\bMinefield\b/i.test(s) && "a") && (E = /b/i.test(l) ? "beta" : "alpha",
j = j.replace(RegExp(l + "\\+?$"), "") + ("beta" == E ? b : g) + (/\d+\+?/.exec(l) || "")),
"Fennec" == O || "Firefox" == O && /\b(?:Android|Firefox OS)\b/.test(D))
O = "Firefox Mobile";
else if ("Maxthon" == O && j)
j = j.replace(/\.[\d.]+/, ".x");
else if (/\bXbox\b/i.test(A))
"Xbox 360" == A && (D = null),
"Xbox 360" == A && /\bIEMobile\b/.test(s) && C.unshift("mobile mode");
else if (!/^(?:Chrome|IE|Opera)$/.test(O) && (!O || A || /Browser|Mobi/.test(O)) || "Windows CE" != D && !/Mobi/i.test(s))
if ("IE" == O && x)
try {
null === n.external && C.unshift("platform preview")
} catch (s) {
C.unshift("embedded")
}
else
(/\bBlackBerry\b/.test(A) || /\bBB10\b/.test(s)) && (l = (RegExp(A.replace(/ +/g, " *") + "/([.\\d]+)", "i").exec(s) || 0)[1] || j) ? (l = [l, /BB10/.test(s)],
D = (l[1] ? (A = null,
M = "BlackBerry") : "Device Software") + " " + l[0],
j = null) : this != N && "Wii" != A && (x && w || /Opera/.test(O) && /\b(?:MSIE|Firefox)\b/i.test(s) || "Firefox" == O && /\bOS X (?:\d+\.){2,}/.test(D) || "IE" == O && (D && !/^Win/.test(D) && 5.5 < j || /\bWindows XP\b/.test(D) && 8 < j || 8 == j && !/\bTrident\b/.test(s))) && !U.test(l = e.call(N, s.replace(U, "") + ";")) && l.name && (l = "ing as " + l.name + ((l = l.version) ? " " + l : ""),
U.test(O) ? (/\bIE\b/.test(l) && "Mac OS" == D && (D = null),
l = "identify" + l) : (l = "mask" + l,
O = k ? R(k.replace(/([a-z])([A-Z])/g, "$1 $2")) : "Opera",
/\bIE\b/.test(l) && (D = null),
x || (j = null)),
P = ["Presto"],
C.push(l));
else
O += " Mobile";
(l = (/\bAppleWebKit\/([\d.]+\+?)/i.exec(s) || 0)[1]) && (l = [parseFloat(l.replace(/\.(\d)$/, ".0$1")), l],
"Safari" == O && "+" == l[1].slice(-1) ? (O = "WebKit Nightly",
E = "alpha",
j = l[1].slice(0, -1)) : j != l[1] && j != (l[2] = (/\bSafari\/([\d.]+\+?)/i.exec(s) || 0)[1]) || (j = null),
l[1] = (/\bChrome\/([\d.]+)/i.exec(s) || 0)[1],
537.36 == l[0] && 537.36 == l[2] && 28 <= parseFloat(l[1]) && "WebKit" == P && (P = ["Blink"]),
l = x && (d || l[1]) ? (P && (P[1] = "like Chrome"),
l[1] || ((l = l[0]) < 530 ? 1 : l < 532 ? 2 : l < 532.05 ? 3 : l < 533 ? 4 : l < 534.03 ? 5 : l < 534.07 ? 6 : l < 534.1 ? 7 : l < 534.13 ? 8 : l < 534.16 ? 9 : l < 534.24 ? 10 : l < 534.3 ? 11 : l < 535.01 ? 12 : l < 535.02 ? "13+" : l < 535.07 ? 15 : l < 535.11 ? 16 : l < 535.19 ? 17 : l < 536.05 ? 18 : l < 536.1 ? 19 : l < 537.01 ? 20 : l < 537.11 ? "21+" : l < 537.13 ? 23 : l < 537.18 ? 24 : l < 537.24 ? 25 : l < 537.36 ? 26 : "Blink" != P ? "27" : "28")) : (P && (P[1] = "like Safari"),
(l = l[0]) < 400 ? 1 : l < 500 ? 2 : l < 526 ? 3 : l < 533 ? 4 : l < 534 ? "4+" : l < 535 ? 5 : l < 537 ? 6 : l < 538 ? 7 : l < 601 ? 8 : "8"),
P && (P[1] += " " + (l += "number" == typeof l ? ".x" : /[.+]/.test(l) ? "" : "+")),
"Safari" == O && (!j || 45 < parseInt(j)) && (j = l)),
"Opera" == O && (l = /\bzbov|zvav$/.exec(D)) ? (O += " ",
C.unshift("desktop mode"),
"zvav" == l ? (O += "Mini",
j = null) : O += "Mobile",
D = D.replace(RegExp(" *" + l + "$"), "")) : "Safari" == O && /\bChrome\b/.exec(P && P[1]) && (C.unshift("desktop mode"),
O = "Chrome Mobile",
j = null,
D = /\bOS X\b/.test(D) ? (M = "Apple",
"iOS 4.3+") : null),
j && 0 == j.indexOf(l = /[\d.]+$/.exec(D)) && -1 < s.indexOf("/" + l + "-") && (D = q(D.replace(l, ""))),
P && !/\b(?:Avant|Nook)\b/.test(O) && (/Browser|Lunascape|Maxthon/.test(O) || "Safari" != O && /^iOS/.test(D) && /\bSafari\b/.test(P[1]) || /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|Web)/.test(O) && P[1]) && (l = P[P.length - 1]) && C.push(l),
C.length && (C = ["(" + C.join("; ") + ")"]),
M && A && A.indexOf(M) < 0 && C.push("on " + M),
A && C.push((/^on /.test(C[C.length - 1]) ? "" : "on ") + A),
D && (l = / ([\d.+]+)$/.exec(D),
u = l && "/" == D.charAt(D.length - l[0].length - 1),
D = {
architecture: 32,
family: l && !u ? D.replace(l[0], "") : D,
version: l ? l[1] : null,
toString: function() {
var e = this.version;
return this.family + (e && !u ? " " + e : "") + (64 == this.architecture ? " 64-bit" : "")
}
}),
(l = /\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(S)) && !/\bi686\b/i.test(S) ? (D && (D.architecture = 64,
D.family = D.family.replace(RegExp(" *" + l), "")),
O && (/\bWOW64\b/i.test(s) || x && /\w(?:86|32)$/.test(o.cpuClass || o.platform) && !/\bWin64; x64\b/i.test(s)) && C.unshift("32-bit")) : D && /^OS X/.test(D.family) && "Chrome" == O && 39 <= parseFloat(j) && (D.architecture = 64),
s || (s = null);
var I = {};
return I.description = s,
I.layout = P && P[0],
I.manufacturer = M,
I.name = O,
I.prerelease = E,
I.product = A,
I.ua = s,
I.version = O && j,
I.os = D || {
architecture: null,
family: null,
version: null,
toString: function() {
return "null"
}
},
I.parse = e,
I.toString = r,
I.version && C.unshift(j),
I.name && C.unshift(O),
D && O && (D != String(D).split(" ")[0] || D != O.split(" ")[0] && !A) && C.push(A ? "(" + D + ")" : "on " + D),
C.length && (I.description = C.join(" ")),
I
}();
V.platform = l,
void 0 !== (h = function() {
return l
}
.call(d, p, d, u)) && (u.exports = h)
}
).call(this)
}
).call(d, p(11)(e), p(5))
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function() {
function e(e, t) {
var r = t.request_start
, n = t.request_response_start
, i = t.request_response_end
, o = t.request_bytes_loaded;
d++;
var a = n - r
, s = i - n;
if (0 < a && 0 < s && 0 < o) {
var l = o / s * 8e3;
p++,
u += a,
c += o,
h += s,
this.data.view_min_request_throughput = Math.min(this.data.view_min_request_throughput || 1 / 0, l),
this.data.view_average_request_throughput = c / h * 8e3,
this.data.view_max_request_latency = Math.max(this.data.view_max_request_latency || 0, a),
this.data.view_average_request_latency = u / p,
this.data.view_request_count = d
}
}
function t(e, t) {
d++,
n++,
this.data.view_request_count = d,
this.data.view_request_failed_count = n
}
function r(e, t) {
d++,
i++,
this.data.view_request_count = d,
this.data.view_request_canceled_count = i
}
var u = 0
, c = 0
, h = 0
, d = 0
, p = 0
, n = 0
, i = 0;
this.on("requestcompleted", e),
this.on("requestfailed", t),
this.on("requestcanceled", r)
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var d = function(e, t) {
if (Array.isArray(e))
return e;
if (Symbol.iterator in Object(e))
return function(e, t) {
var r = []
, n = !0
, i = !1
, o = void 0;
try {
for (var a, s = e[Symbol.iterator](); !(n = (a = s.next()).done) && (r.push(a.value),
!t || r.length !== t); n = !0)
;
} catch (e) {
i = !0,
o = e
} finally {
try {
!n && s.return && s.return()
} finally {
if (i)
throw o
}
}
return r
}(e, t);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
};
t.default = function(a, e, r) {
var t = (0,
f.findMediaElement)(e)
, n = d(t, 3)
, s = n[0]
, i = n[1]
, o = n[2]
, l = a.log
, u = a.utils.getComputedStyle
, c = a.utils.secondsToMs
, h = {
automaticErrorTracking: !0
};
return s ? "video" !== o && "audio" !== o ? l.error("The element of `" + i + "` was not a media element.") : ((r = (0,
p.default)(h, r)).data = (0,
p.default)({
player_software: "HTML5 Video Element",
player_software_version: "No Versions",
player_mux_plugin_name: "VideoElementMonitor",
player_mux_plugin_version: "2.7.0"
}, r.data),
r.getPlayheadTime = function() {
return c(s.currentTime)
}
,
r.getStateData = function() {
return {
player_is_paused: s.paused,
player_playhead_time: c(s.currentTime),
player_width: parseInt(u(s, "width")),
player_height: parseInt(u(s, "height")),
player_autoplay_on: s.autoplay,
player_preload_on: s.preload,
video_poster_url: s.poster,
video_source_url: s.currentSrc,
video_source_duration: c(s.duration),
video_source_height: s.videoHeight,
video_source_width: s.videoWidth
}
}
,
s.mux = s.mux || {},
s.mux.emit = function(e, t) {
a.emit(i, e, t)
}
,
s.mux.destroy = function() {
Object.keys(s.mux.listeners).forEach(function(e) {
s.removeEventListener(e, s.mux.listeners[e], !1)
}),
delete s.mux.listeners,
a.emit(i, "destroy")
}
,
s.mux.swapElement = function(e) {
var t = (0,
f.findMediaElement)(e)
, r = d(t, 3)
, n = r[0]
, i = r[1]
, o = r[2];
return n ? "video" !== o && "audio" !== o ? a.log.error("The element of `" + i + "` was not a media element.") : (n.muxId = s.muxId,
delete s.muxId,
n.mux = n.mux || {},
n.mux.listeners = (0,
p.default)({}, s.mux.listeners),
delete s.mux.listeners,
Object.keys(n.mux.listeners).forEach(function(e) {
s.removeEventListener(e, n.mux.listeners[e], !1),
n.addEventListener(e, n.mux.listeners[e], !1)
}),
n.mux.swapElement = s.mux.swapElement,
n.mux.destroy = s.mux.destroy,
delete s.mux,
void (s = n)) : a.log.error("No element was found with the `" + i + "` query selector.")
}
,
s.mux.addHLSJS = function(e) {
a.addHLSJS(i, e)
}
,
s.mux.addDashJS = function(e) {
a.addDashJS(i, e)
}
,
s.mux.removeHLSJS = function() {
a.removeHLSJS(i)
}
,
s.mux.removeDashJS = function() {
a.removeDashJS(i)
}
,
a.init(i, r),
a.emit(i, "playerready"),
s.paused || (a.emit(i, "play"),
2 < s.readyState && a.emit(i, "playing")),
s.mux.listeners = {},
void v.forEach(function(t) {
("error" !== t || r.automaticErrorTracking) && (s.mux.listeners[t] = function() {
var e = {};
"error" === t && (e.player_error_code = s.error && s.error.code,
e.player_error_message = s.error && y[s.error.code]),
a.emit(i, t, e)
}
,
s.addEventListener(t, s.mux.listeners[t], !1))
})) : l.error("No element was found with the `" + i + "` query selector.")
}
;
var n, i = r(0), p = (n = i) && n.__esModule ? n : {
default: n
}, f = r(8), v = ["loadstart", "pause", "play", "playing", "seeking", "seeked", "timeupdate", "ratechange", "stalled", "waiting", "error", "ended"], y = {
1: "MEDIA_ERR_ABORTED",
2: "MEDIA_ERR_NETWORK",
3: "MEDIA_ERR_DECODE",
4: "MEDIA_ERR_SRC_NOT_SUPPORTED"
}
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i = r(50)
, o = n(i)
, a = r(1)
, s = n(a)
, l = r(51)
, u = n(l)
, c = r(52)
, h = n(c)
, d = r(0)
, p = n(d)
, f = r(7)
, v = n(f)
, y = r(4)
, m = {};
m.safeCall = o.default,
m.safeIncrement = s.default,
m.getComputedStyle = u.default,
m.secondsToMs = h.default,
m.assign = p.default,
m.headersStringToObject = v.default,
m.extractHostnameAndDomain = y.extractHostnameAndDomain,
t.default = m
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(e, t, r, n) {
var i = n;
if (e && "function" == typeof e[t])
try {
i = e[t].apply(e, r)
} catch (e) {
o.default.info("safeCall error", e)
}
return i
}
;
var n, i = r(3), o = (n = i) && n.__esModule ? n : {
default: n
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(e, t) {
if (o.default.defaultView && o.default.defaultView.getComputedStyle)
return o.default.defaultView.getComputedStyle(e, null).getPropertyValue(t)
}
;
var n, i = r(10), o = (n = i) && n.__esModule ? n : {
default: n
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(e) {
return Math.floor(1e3 * e)
}
}
])
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(o, a) {
var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : []
, e = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : []
, s = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : function() {
return {}
}
, l = !1;
o.on("adstart", function() {
l = !0
}),
o.on("adend", function() {
l = !1
}),
o.on("adserror", function() {
l = !1
});
var t = function() {
var i = u(a.currentTime())
, e = function e() {
var t = Date.now()
, r = u(a.currentTime());
if (l) {
if (i < r) {
var n = s();
n.viewer_time = t - Math.max(0, r - i),
a.off("timeupdate", e),
o.mux.emit("adplaying", n)
}
} else
a.off("timeupdate", e)
};
a.on("timeupdate", e);
var t = function t() {
a.off("timeupdate", e),
r.forEach(function(e) {
a.off(e, t)
})
};
r.forEach(function(e) {
a.on(e, t)
})
};
e.forEach(function(e) {
a.on(e, t)
})
}
;
var n, i = r(0), o = (n = i) && n.__esModule ? n : {
default: n
}, u = o.default.utils.secondsToMs
}
, function(e, t, r) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
var i = r(3)
, s = n(i)
, o = r(0)
, l = n(o)
, a = r(4)
, u = n(a)
, c = r(6)
, h = n(c)
, d = r(7)
, p = n(d)
, f = r(8)
, v = n(f)
, y = r(9)
, m = n(y)
, _ = r(10)
, g = n(_)
, b = l.default.log
, T = l.default.utils.assign
, w = l.default.utils.safeCall
, k = l.default.utils.getComputedStyle
, S = l.default.utils.secondsToMs
, C = ["loadstart", "pause", "play", "playing", "seeking", "seeked", "timeupdate", "ratechange", "stalled", "waiting", "error", "ended"];
(s.default.registerPlugin || s.default.plugin || function() {
l.default.log.error("No valid method to register videojs plugin available.")
}
)("mux", function(e) {
if (s.default.IS_IE8)
return !1;
var n = this
, r = n.id();
(e = T({
automaticErrorTracking: !0
}, e)).data = T({
player_software_name: "Video.js",
player_software_version: s.default.VERSION || "< 4.11",
player_mux_plugin_name: "videojs-mux",
player_mux_plugin_version: "2.5.0"
}, e.data),
e.getPlayheadTime = function() {
return S(n.currentTime())
}
,
e.getStateData = function() {
var e = w(n, "videoHeight")
, t = w(n, "videoWidth");
if (void 0 === t || void 0 === e) {
var r = n.el().firstChild;
r && "VIDEO" === r.nodeName.toUpperCase() && (e = r.videoHeight,
t = r.videoWidth)
}
return {
player_is_paused: w(n, "paused"),
player_is_fullscreen: w(n, "isFullscreen"),
player_autoplay_on: !!w(n, "autoplay"),
player_preload_on: w(n, "preload"),
player_width: k(n.el(), "width"),
player_height: k(n.el(), "height"),
player_language_code: w(n, "language"),
video_poster_url: w(n, "poster"),
video_source_url: w(n, "currentSrc"),
video_source_mime_type: w(n, "currentType"),
video_source_duration: S(w(n, "duration") || 0),
video_source_height: e,
video_source_width: t
}
}
,
n.mux = function() {
b.error("[videojs-mux] The plugin was initialized more than once.")
}
,
n.mux.emit = function(e, t) {
l.default.emit(r, e, t)
}
,
n.mux.log = b,
n.mux.utils = l.default.utils,
l.default.init(r, e);
var t = !1
, i = function() {
t || n.mux.emit("playerready"),
t = !0
};
n.ready(function() {
n.addClass("vjs-mux"),
u.default.setTimeout(i, 0)
});
var o = !1;
n.one("play", i),
C.forEach(function(r) {
("error" !== r || e.automaticErrorTracking) && n.on(r, function() {
if (!o) {
var e = {};
if ("error" === r) {
var t = w(n, "error");
e.player_error_code = t && t.code,
e.player_error_message = t && t.message
}
n.mux.emit(r, e)
}
})
});
var a = !1;
n.on("play", function() {
a = !0
}),
n.on("pause", function() {
a = !1
}),
n.on("adstart", function() {
o = !0,
a && n.mux.emit("pause"),
n.mux.emit("adbreakstart")
}),
n.on("adend", function() {
n.mux.emit("adbreakend"),
o = !1,
w(n, "paused") || (n.mux.emit("play"),
a = !0,
n.onceux && n.mux.emit("playing"))
}),
n.ima && (0,
h.default)(n),
n.onceux && (0,
m.default)(n),
n.ima3 && "function" == typeof n.ima3.ready && (0,
p.default)(n),
n.FreeWheelPlugin && n.FreeWheelPlugin.VERSION && (0,
v.default)(n),
n.on("dispose", function() {
n.mux.emit("destroy")
})
}),
(0,
g.default)(s.default)
}
, function(e, t) {
e.exports = W1
}
, function(r, e, t) {
(function(e) {
var t;
t = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {},
r.exports = t
}
).call(e, t(5))
}
, function(Jua, Kua) {
var Lua;
Lua = function() {
return this
}();
try {
Lua = Lua || Function("return this")() || eval("this")
} catch (Jua) {
"object" == typeof window && (Lua = window)
}
Jua.exports = Lua
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(a) {
var r = function(e) {
var t = "function" == typeof (e = e || {}).getAdData ? e.getAdData() : {}
, r = "function" == typeof e.getAd ? e.getAd() : {}
, n = "function" == typeof r.getMediaUrl ? r.getMediaUrl() : t.mediaUrl
, i = a.ima.settings || {}
, o = {};
return n && (o.ad_asset_url = n),
i.adTagUrl && (o.ad_tag_url = i.adTagUrl),
o
}
, t = void 0
, n = void 0
, i = void 0
, o = void 0
, s = void 0
, l = void 0;
try {
var e = window.google.ima.AdEvent.Type;
t = e.LOADED,
n = e.STARTED,
i = e.COMPLETE,
o = e.PAUSED,
s = e.RESUMED,
l = e.SKIPPED
} catch (a) {
t = "loaded",
n = "start",
i = "complete",
o = "pause",
s = "resume",
l = "skip"
}
var u = 0;
a.mux.triggerAdRequest = function() {
u++,
a.mux.emit("adrequest", r())
}
,
a.on("adsready", function() {
var e = a.ima.addEventListener || function() {}
;
e(t, function(e) {
var t = r(e);
0 < u && (u--,
a.mux.emit("adresponse", t)),
a.mux.emit("adplay", t)
}),
e(n, function(e) {
var t = r(e);
a.mux.emit("adplaying", t)
}),
e(s, function(e) {
var t = r(e);
a.mux.emit("adplay", t),
a.mux.emit("adplaying", t)
}),
e(o, function(e) {
var t = r(e);
a.mux.emit("adpause", t)
}),
e(i, function(e) {
var t = r(e);
a.mux.emit("adended", t)
}),
e(l, function(e) {
var t = r(e);
a.mux.emit("adended", t)
}),
a.on("adserror", function() {
0 < u && (u--,
a.mux.emit("adresponse")),
a.mux.emit("aderror")
})
})
}
}
, function(e, t, r) {
"use strict";
function i(e) {
if ("string" != typeof e)
return !1;
var t = e.split(".").map(function(e) {
return parseInt(e)
})
, r = t[0]
, n = t[1];
return 2 < r || 2 === r && 3 <= n
}
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.brightcoveImaAdsEventsSupported = i,
t.default = function(n) {
var r = function() {
var e = n.ima3.currentAd
, t = n.ima3.settings
, r = {};
return e && (r.ad_asset_url = e.mediaUrl),
t && (r.ad_tag_url = t.serverUrl),
r
};
if (i(n.ima3.version)) {
var e = 0
, t = function() {
0 < e && (e--,
n.mux.emit("adresponse", r()))
};
n.on("ads-request", function() {
e++,
n.mux.emit("adrequest", r())
}),
n.on("ads-load", function() {
t(),
n.mux.emit("adplay", r())
}),
n.on("adserror", function() {
t(),
n.mux.emit("aderror")
}),
n.on("ads-play", function() {
n.mux.emit("adplay", r())
}),
n.on("ads-pause", function() {
n.mux.emit("adpause", r())
}),
n.on("ads-ad-ended", function() {
n.mux.emit("adended", r())
})
}
n.ima3.ready(function() {
if (n.ima3.adPlayer) {
i(n.ima3.version) || (n.ima3.adPlayer.on("play", function() {
n.mux.emit("adplay")
}),
n.ima3.adPlayer.on("pause", function() {
n.mux.emit("adpause")
}),
n.ima3.adPlayer.on("ended", function() {
n.mux.emit("adended")
}));
var e = ["pause", "ended", "adserror"]
, t = ["play"];
(0,
a.default)(n, n.ima3.adPlayer, e, t, r)
} else
n.mux.log("Legacy IMA3 plugin found, ad events may not track correctly."),
n.on("ads-ad-started", function() {
n.mux.emit("adplaying", r())
}),
n.on("ads-play", function() {
n.mux.emit("adplaying", r())
})
})
}
;
var n, o = r(1), a = (n = o) && n.__esModule ? n : {
default: n
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(n) {
var e = function(e) {
var t = n.FreeWheelPlugin
, r = {};
switch (e) {
case "adplay":
case "adplaying":
case "adpause":
r.ad_asset_url = n.currentSrc()
}
return t && (r.ad_tag_url = "html5" === t.tech.toLowerCase() ? t.settings.Html5.serverUrl : t.settings.Flash.serverUrl),
r
};
n.on("ads-request", function() {
n.mux.emit("adrequest", e("adrequest"))
}),
n.on("ads-load", function() {
n.mux.emit("adresponse", e("adresponse"))
}),
n.on("adserror", function() {
n.mux.emit("aderror")
}),
n.on("ads-ad-started", function() {
n.mux.emit("adplay", e("adplay")),
n.mux.emit("adplaying", e("adplaying"))
}),
n.on("ads-play", function() {
n.mux.emit("adplay", e("adplay")),
n.mux.emit("adplaying", e("adplaying"))
}),
n.on("ads-pause", function() {
n.mux.emit("adpause", e("adpause"))
}),
n.on("ads-ad-ended", function() {
n.mux.emit("adended", e("adended"))
}),
n.on("adend", function() {
n.mux.emit("play")
})
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(t) {
var e = ["onceux-linearad-pause", "onceux-linearad-skipped", "onceux-linearad-complete", "adserror"]
, r = ["adstart", "onceux-linearad-resume"];
(0,
o.default)(t, t, e, r),
t.on("adstart", function() {
t.mux.emit("adplay")
}),
t.on("onceux-linearad-start", function(e) {
e.linearAd && 0 < e.linearAd.index && (t.mux.emit("adplay"),
t.mux.emit("adplaying"))
}),
t.on("onceux-linearad-resume", function() {
t.mux.emit("adplay")
}),
t.on("onceux-linearad-pause", function() {
t.mux.emit("adpause")
}),
t.on("onceux-linearad-complete", function() {
t.mux.emit("adended")
}),
t.on("onceux-linearad-skipped", function() {
t.mux.emit("adended")
})
}
;
var n, i = r(1), o = (n = i) && n.__esModule ? n : {
default: n
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(o) {
if (!s && "function" == typeof o.getTech) {
for (var e = o.getTech("Html5") || {}, r = e.sourceHandlers, t = 0; t < r.length; t++)
!function(e) {
var t = r[e]
, i = t.handleSource;
t.handleSource = function(e, t) {
var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}
, n = i(e, t, r);
if (n && "function" == typeof n.xhr)
try {
(0,
a.default)(o(n.player_.el_.parentNode.id), n.xhr)
} catch (e) {}
return n
}
}(t);
s = !0
}
}
;
var n, i = r(11), a = (n = i) && n.__esModule ? n : {
default: n
}, s = !1
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.default = function(s, e) {
var r, n = function(a) {
return function(e) {
var t, r, n, i, o = Date.now();
try {
a(e)
} catch (e) {}
try {
e.onreadystatechange = (r = o,
n = (t = e).onreadystatechange || function() {}
,
i = (0,
l.default)(s, t, r),
function() {
try {
i()
} catch (e) {}
try {
n()
} catch (e) {}
}
)
} catch (e) {}
}
};
e.beforeRequest = (r = e.beforeRequest || function(e) {
return e
}
,
function(e) {
var t = r(e);
return t.beforeSend = n(t.beforeSend || function() {}
),
t
}
)
}
;
var n, i = r(12), l = (n = i) && n.__esModule ? n : {
default: n
}
}
, function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var y = function(e, t) {
if (Array.isArray(e))
return e;
if (Symbol.iterator in Object(e))
return function(e, t) {
var r = []
, n = !0
, i = !1
, o = void 0;
try {
for (var a, s = e[Symbol.iterator](); !(n = (a = s.next()).done) && (r.push(a.value),
!t || r.length !== t); n = !0)
;
} catch (e) {
i = !0,
o = e
} finally {
try {
!n && s.return && s.return()
} finally {
if (i)
throw o
}
}
return r
}(e, t);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
};
t.default = function(c, h, d) {
var p = c.mux.utils.extractHostnameAndDomain
, f = c.mux.utils.headersStringToObject
, v = 0;
return function() {
var e, t = h.readyState;
if (2 <= t) {
if (v = v || Date.now(),
4 !== t)
return;
if (200 <= h.status && h.status < 300) {
var r = Date.now()
, n = "arraybuffer" === h.responseType ? h.response.byteLength : h.responseText.length
, i = p(h.responseURL)
, o = y(i, 1)
, a = o[0]
, s = f(h.getAllResponseHeaders ? h.getAllResponseHeaders() : "")
, l = (e = s["content-type"]) ? e.match(/^audio\/mpegurl/i) ? "manifest" : e.match(/^audio.*/i) ? "audio" : e.match(/^video.*/) ? "video" : e.match(/^application\/x-mpegurl/i) ? "manifest" : e.match(/^application\/vnd.apple.mpegurl/i) ? "manifest" : e.match(/^application\/dash+xml/i) ? "manifest" : "unknown" : "unknown"
, u = {
request_start: d,
request_response_start: v,
request_response_end: r,
request_bytes_loaded: n,
request_hostname: a,
request_response_headers: s,
request_type: l
};
c.mux.emit("requestcompleted", u)
} else
c.mux.emit("requestfailed")
}
}
}
}
]))
},
"./node_modules/videojs-sneakpeek/dist/videojs-sneakpeek.min.js": function(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t];
for (var n in r)
Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}
, S = function(e, t) {
if (Array.isArray(e))
return e;
if (Symbol.iterator in Object(e))
return function(e, t) {
var r = []
, n = !0
, i = !1
, o = void 0;
try {
for (var a, s = e[Symbol.iterator](); !(n = (a = s.next()).done) && (r.push(a.value),
!t || r.length !== t); n = !0)
;
} catch (e) {
i = !0,
o = e
} finally {
try {
!n && s.return && s.return()
} finally {
if (i)
throw o
}
}
return r
}(e, t);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
};
t.enablePlugin = function(e, t) {
(i.default.registerPlugin || i.default.plugin)(e, t)
}
,
t.default = function(e) {
a.basePath = e.basePath || a.basePath;
var T = n({}, a, e)
, w = this
, o = []
, k = void 0;
function t() {
if (!k) {
for (var e = 0; e < o.length; e++)
if ("metadata" === o[e].kind && "sneakpeek" === o[e].label) {
(k = o[e]).mode = "hidden";
break
}
if (k) {
if (-1 !== navigator.userAgent.toLowerCase().indexOf("android")) {
var t = w.controlBar.progressControl
, r = function() {
t.removeClass("fake-active")
};
t.on("touchstart", function() {
t.addClass("fake-active")
}),
t.on("touchend", r),
t.on("touchcancel", r)
}
var m = document.createElement("div");
m.className = "vjs-sneakpeek-holder";
var _ = document.createElement("img");
m.appendChild(_),
_.className = "vjs-sneakpeek";
var g = w.duration();
w.on("durationchange", function() {
g = w.duration()
}),
w.on("loadedmetadata", function() {
g = w.duration()
});
var b = w.controlBar.progressControl;
b.el().appendChild(m),
b.on("mousemove", n),
b.on("touchmove", n),
b.on("mouseout", i),
b.on("touchcancel", i),
b.on("touchend", i),
w.on("userinactive", i)
}
}
function n(e) {
var t = function() {
if (C.default.pageXOffset)
return {
x: C.default.pageXOffset,
y: C.default.pageYOffset
};
return {
x: document.documentElement.scrollLeft,
y: document.documentElement.scrollTop
}
}().x
, r = E(b.el()).getBoundingClientRect()
, n = e.pageX;
e.changedTouches && (n = e.changedTouches[0].pageX);
var i = (r.width || r.right) + t
, o = n || e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
o -= E(b.el()).getBoundingClientRect().left + t;
for (var a = Math.floor(o / b.width() * g), s = k && k.cues.length, l = 0, u = void 0; l < s; ) {
var c = k.cues[l];
if (c.startTime <= a && c.endTime >= a) {
u = x(c.text);
break
}
l++
}
if (void 0 !== u) {
if (u.src && _.src !== u.src) {
var h = "";
"/" === u.src[0] && (h = (h = w.currentSrc()).substring(0, h.lastIndexOf("/"))),
_.src = h + u.src + (d = T.urlParams,
"" === (p = Object.entries(d).map(function(e) {
var t = S(e, 2)
, r = t[0]
, n = t[1];
return r + "=" + n
}).join("&")) ? "" : "?" + p)
}
var d, p;
u.w = u.w || T.width,
u.h = u.h || T.height,
m.style.width === u.w && m.style.height === u.h || (m.style.width = u.w + "px",
m.style.height = u.h + "px"),
_.style.left = -u.x + "px",
_.style.top = -u.y + "px";
var f = [u.y, u.w + u.x, u.y + u.h, u.x];
_.style.clip = "rect(" + f.join("px,") + "px)";
var v = u.w
, y = v / 2;
i < o + y ? o = i - v : o < y ? o = 0 : o -= y,
m.style.left = o + "px"
}
}
function i() {
m.style.left = "-1000px"
}
}
w.ready(function() {
o = w.remoteTextTracks(),
t(),
k || o.addEventListener("addtrack", t)
})
}
;
var i = o(r("./node_modules/video.js/dist/video.cjs.js"))
, C = o(r("./node_modules/global/window.js"));
function o(e) {
return e && e.__esModule ? e : {
default: e
}
}
var a = {
width: 0,
height: 0,
basePath: "",
urlParams: {}
};
function E(e) {
return "HTML" !== e.nodeName && "static" === (r = e,
t = "position",
C.default.getComputedStyle ? C.default.getComputedStyle(r, n)[t] : r.currentStyle[t]) ? E(e.offsetParent) : e;
var t, r, n
}
function x(e) {
var t = e.indexOf("#");
if (-1 === t)
return {
src: e,
x: 0,
y: 0,
w: 0,
h: 0
};
var r = e.substring(0, t)
, n = e.substring(t + 1);
if ("xywh=" !== n.substring(0, 5))
return {
src: a.basePath + r,
x: 0,
y: 0,
w: 0,
h: 0
};
var i = n.substring(5).split(",");
return {
src: a.basePath + r,
x: +i[0],
y: +i[1],
w: +i[2],
h: +i[3]
}
}
},
"./node_modules/videojs-swf/package.json": function(e) {
e.exports = {
a: "5.4.2"
}
},
"./node_modules/videojs-vtt.js/lib/browser-index.js": function(e, t, r) {
var n = r("./node_modules/global/window.js")
, i = e.exports = {
WebVTT: r("./node_modules/videojs-vtt.js/lib/vtt.js"),
VTTCue: r("./node_modules/videojs-vtt.js/lib/vttcue.js"),
VTTRegion: r("./node_modules/videojs-vtt.js/lib/vttregion.js")
};
n.vttjs = i,
n.WebVTT = i.WebVTT;
var o = i.VTTCue
, a = i.VTTRegion
, s = n.VTTCue
, l = n.VTTRegion;
i.shim = function() {
n.VTTCue = o,
n.VTTRegion = a
}
,
i.restore = function() {
n.VTTCue = s,
n.VTTRegion = l
}
,
n.VTTCue || i.shim()
},
"./node_modules/videojs-vtt.js/lib/vtt.js": function(e, t) {
var r = Object.create || function() {
function t() {}
return function(e) {
if (1 !== arguments.length)
throw new Error("Object.create shim only accepts one parameter.");
return t.prototype = e,
new t
}
}();
function u(e, t) {
this.name = "ParsingError",
this.code = e.code,
this.message = t || e.message
}
function v(e) {
function t(e, t, r, n) {
return 3600 * (0 | e) + 60 * (0 | t) + (0 | r) + (0 | n) / 1e3
}
var r = e.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);
return r ? r[3] ? t(r[1], r[2], r[3].replace(":", ""), r[4]) : 59 < r[1] ? t(r[1], r[2], 0, r[4]) : t(0, r[1], r[2], r[4]) : null
}
function c() {
this.values = r(null)
}
function h(e, t, r, n) {
var i = n ? e.split(n) : [e];
for (var o in i)
if ("string" == typeof i[o]) {
var a = i[o].split(r);
if (2 === a.length)
t(a[0], a[1])
}
}
function l(t, e, o) {
var r, n, a, i = t;
function s() {
var e = v(t);
if (null === e)
throw new u(u.Errors.BadTimeStamp,"Malformed timestamp: " + i);
return t = t.replace(/^[^\sa-zA-Z-]+/, ""),
e
}
function l() {
t = t.replace(/^\s+/, "")
}
if (l(),
e.startTime = s(),
l(),
"--\x3e" !== t.substr(0, 3))
throw new u(u.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '--\x3e'): " + i);
t = t.substr(3),
l(),
e.endTime = s(),
l(),
r = t,
n = e,
a = new c,
h(r, function(e, t) {
switch (e) {
case "region":
for (var r = o.length - 1; 0 <= r; r--)
if (o[r].id === t) {
a.set(e, o[r].region);
break
}
break;
case "vertical":
a.alt(e, t, ["rl", "lr"]);
break;
case "line":
var n = t.split(",")
, i = n[0];
a.integer(e, i),
a.percent(e, i) && a.set("snapToLines", !1),
a.alt(e, i, ["auto"]),
2 === n.length && a.alt("lineAlign", n[1], ["start", "middle", "end"]);
break;
case "position":
n = t.split(","),
a.percent(e, n[0]),
2 === n.length && a.alt("positionAlign", n[1], ["start", "middle", "end"]);
break;
case "size":
a.percent(e, t);
break;
case "align":
a.alt(e, t, ["start", "middle", "end", "left", "right"])
}
}, /:/, /\s/),
n.region = a.get("region", null),
n.vertical = a.get("vertical", ""),
n.line = a.get("line", "auto"),
n.lineAlign = a.get("lineAlign", "start"),
n.snapToLines = a.get("snapToLines", !0),
n.size = a.get("size", 100),
n.align = a.get("align", "middle"),
n.position = a.get("position", {
start: 0,
left: 0,
middle: 50,
end: 100,
right: 100
}, n.align),
n.positionAlign = a.get("positionAlign", {
start: "start",
left: "start",
middle: "middle",
end: "end",
right: "end"
}, n.align)
}
((u.prototype = r(Error.prototype)).constructor = u).Errors = {
BadSignature: {
code: 0,
message: "Malformed WebVTT signature."
},
BadTimeStamp: {
code: 1,
message: "Malformed time stamp."
}
},
c.prototype = {
set: function(e, t) {
this.get(e) || "" === t || (this.values[e] = t)
},
get: function(e, t, r) {
return r ? this.has(e) ? this.values[e] : t[r] : this.has(e) ? this.values[e] : t
},
has: function(e) {
return e in this.values
},
alt: function(e, t, r) {
for (var n = 0; n < r.length; ++n)
if (t === r[n]) {
this.set(e, t);
break
}
},
integer: function(e, t) {
/^-?\d+$/.test(t) && this.set(e, parseInt(t, 10))
},
percent: function(e, t) {
return !!(t.match(/^([\d]{1,3})(\.[\d]*)?%$/) && 0 <= (t = parseFloat(t)) && t <= 100) && (this.set(e, t),
!0)
}
};
var y = {
"&amp;": "&",
"&lt;": "<",
"&gt;": ">",
"&lrm;": "‎",
"&rlm;": "‏",
"&nbsp;": " "
}
, m = {
c: "span",
i: "i",
b: "b",
u: "u",
ruby: "ruby",
rt: "rt",
v: "span",
lang: "span"
}
, _ = {
v: "title",
lang: "lang"
}
, g = {
rt: "ruby"
};
function d(o, r) {
function e() {
if (!r)
return null;
var e, t = r.match(/^([^<]*)(<[^>]*>?)?/);
return e = t[1] ? t[1] : t[2],
r = r.substr(e.length),
e
}
function t(e) {
return y[e]
}
function n(e) {
for (; f = e.match(/&(amp|lt|gt|lrm|rlm|nbsp);/); )
e = e.replace(f[0], t);
return e
}
function i(e, t) {
var r = m[e];
if (!r)
return null;
var n = o.document.createElement(r);
n.localName = r;
var i = _[e];
return i && t && (n[i] = t.trim()),
n
}
for (var a, s, l, u = o.document.createElement("div"), c = u, h = []; null !== (a = e()); )
if ("<" !== a[0])
c.appendChild(o.document.createTextNode(n(a)));
else {
if ("/" === a[1]) {
h.length && h[h.length - 1] === a.substr(2).replace(">", "") && (h.pop(),
c = c.parentNode);
continue
}
var d, p = v(a.substr(1, a.length - 2));
if (p) {
d = o.document.createProcessingInstruction("timestamp", p),
c.appendChild(d);
continue
}
var f = a.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);
if (!f)
continue;
if (!(d = i(f[1], f[3])))
continue;
if (s = c,
g[(l = d).localName] && g[l.localName] !== s.localName)
continue;
f[2] && (d.className = f[2].substr(1).replace(".", " ")),
h.push(f[1]),
c.appendChild(d),
c = d
}
return u
}
var n = [[1470, 1470], [1472, 1472], [1475, 1475], [1478, 1478], [1488, 1514], [1520, 1524], [1544, 1544], [1547, 1547], [1549, 1549], [1563, 1563], [1566, 1610], [1645, 1647], [1649, 1749], [1765, 1766], [1774, 1775], [1786, 1805], [1807, 1808], [1810, 1839], [1869, 1957], [1969, 1969], [1984, 2026], [2036, 2037], [2042, 2042], [2048, 2069], [2074, 2074], [2084, 2084], [2088, 2088], [2096, 2110], [2112, 2136], [2142, 2142], [2208, 2208], [2210, 2220], [8207, 8207], [64285, 64285], [64287, 64296], [64298, 64310], [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324], [64326, 64449], [64467, 64829], [64848, 64911], [64914, 64967], [65008, 65020], [65136, 65140], [65142, 65276], [67584, 67589], [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644], [67647, 67669], [67671, 67679], [67840, 67867], [67872, 67897], [67903, 67903], [67968, 68023], [68030, 68031], [68096, 68096], [68112, 68115], [68117, 68119], [68121, 68147], [68160, 68167], [68176, 68184], [68192, 68223], [68352, 68405], [68416, 68437], [68440, 68466], [68472, 68479], [68608, 68680], [126464, 126467], [126469, 126495], [126497, 126498], [126500, 126500], [126503, 126503], [126505, 126514], [126516, 126519], [126521, 126521], [126523, 126523], [126530, 126530], [126535, 126535], [126537, 126537], [126539, 126539], [126541, 126543], [126545, 126546], [126548, 126548], [126551, 126551], [126553, 126553], [126555, 126555], [126557, 126557], [126559, 126559], [126561, 126562], [126564, 126564], [126567, 126570], [126572, 126578], [126580, 126583], [126585, 126588], [126590, 126590], [126592, 126601], [126603, 126619], [126625, 126627], [126629, 126633], [126635, 126651], [1114109, 1114109]];
function p(e) {
for (var t = 0; t < n.length; t++) {
var r = n[t];
if (e >= r[0] && e <= r[1])
return !0
}
return !1
}
function f() {}
function b(e, t, r) {
var n = /MSIE\s8\.0/.test(navigator.userAgent)
, i = "rgba(255, 255, 255, 1)"
, o = "rgba(0, 0, 0, 0.8)";
n && (i = "rgb(255, 255, 255)",
o = "rgb(0, 0, 0)"),
f.call(this),
this.cue = t,
this.cueDiv = d(e, t.text);
var a = {
color: i,
backgroundColor: o,
position: "relative",
left: 0,
right: 0,
top: 0,
bottom: 0,
display: "inline"
};
n || (a.writingMode = "" === t.vertical ? "horizontal-tb" : "lr" === t.vertical ? "vertical-lr" : "vertical-rl",
a.unicodeBidi = "plaintext"),
this.applyStyles(a, this.cueDiv),
this.div = e.document.createElement("div"),
a = {
textAlign: "middle" === t.align ? "center" : t.align,
font: r.font,
whiteSpace: "pre-line",
position: "absolute"
},
n || (a.direction = function(e) {
var t = []
, r = "";
if (!e || !e.childNodes)
return "ltr";
function i(e, t) {
for (var r = t.childNodes.length - 1; 0 <= r; r--)
e.push(t.childNodes[r])
}
function o(e) {
if (!e || !e.length)
return null;
var t = e.pop()
, r = t.textContent || t.innerText;
if (r) {
var n = r.match(/^.*(\n|\r)/);
return n ? n[e.length = 0] : r
}
return "ruby" === t.tagName ? o(e) : t.childNodes ? (i(e, t),
o(e)) : void 0
}
for (i(t, e); r = o(t); )
for (var n = 0; n < r.length; n++)
if (p(r.charCodeAt(n)))
return "rtl";
return "ltr"
}(this.cueDiv),
a.writingMode = "" === t.vertical ? "horizontal-tb" : "lr" === t.vertical ? "vertical-lr" : "vertical-rl".stylesunicodeBidi = "plaintext"),
this.applyStyles(a),
this.div.appendChild(this.cueDiv);
var s = 0;
switch (t.positionAlign) {
case "start":
s = t.position;
break;
case "middle":
s = t.position - t.size / 2;
break;
case "end":
s = t.position - t.size
}
"" === t.vertical ? this.applyStyles({
left: this.formatStyle(s, "%"),
width: this.formatStyle(t.size, "%")
}) : this.applyStyles({
top: this.formatStyle(s, "%"),
height: this.formatStyle(t.size, "%")
}),
this.move = function(e) {
this.applyStyles({
top: this.formatStyle(e.top, "px"),
bottom: this.formatStyle(e.bottom, "px"),
left: this.formatStyle(e.left, "px"),
right: this.formatStyle(e.right, "px"),
height: this.formatStyle(e.height, "px"),
width: this.formatStyle(e.width, "px")
})
}
}
function T(e) {
var t, r, n, i, o = /MSIE\s8\.0/.test(navigator.userAgent);
if (e.div) {
r = e.div.offsetHeight,
n = e.div.offsetWidth,
i = e.div.offsetTop;
var a = (a = e.div.childNodes) && (a = a[0]) && a.getClientRects && a.getClientRects();
e = e.div.getBoundingClientRect(),
t = a ? Math.max(a[0] && a[0].height || 0, e.height / a.length) : 0
}
this.left = e.left,
this.right = e.right,
this.top = e.top || i,
this.height = e.height || r,
this.bottom = e.bottom || i + (e.height || r),
this.width = e.width || n,
this.lineHeight = void 0 !== t ? t : e.lineHeight,
o && !this.lineHeight && (this.lineHeight = 13)
}
function w(e, t, s, l) {
var r = new T(t)
, n = t.cue
, i = function(e) {
if ("number" == typeof e.line && (e.snapToLines || 0 <= e.line && e.line <= 100))
return e.line;
if (!e.track || !e.track.textTrackList || !e.track.textTrackList.mediaElement)
return -1;
for (var t = e.track, r = t.textTrackList, n = 0, i = 0; i < r.length && r[i] !== t; i++)
"showing" === r[i].mode && n++;
return -1 * ++n
}(n)
, o = [];
if (n.snapToLines) {
var a;
switch (n.vertical) {
case "":
o = ["+y", "-y"],
a = "height";
break;
case "rl":
o = ["+x", "-x"],
a = "width";
break;
case "lr":
o = ["-x", "+x"],
a = "width"
}
var u = r.lineHeight
, c = u * Math.round(i)
, h = s[a] + u
, d = o[0];
Math.abs(c) > h && (c = c < 0 ? -1 : 1,
c *= Math.ceil(h / u) * u),
i < 0 && (c += "" === n.vertical ? s.height : s.width,
o = o.reverse()),
r.move(d, c)
} else {
var p = r.lineHeight / s.height * 100;
switch (n.lineAlign) {
case "middle":
i -= p / 2;
break;
case "end":
i -= p
}
switch (n.vertical) {
case "":
t.applyStyles({
top: t.formatStyle(i, "%")
});
break;
case "rl":
t.applyStyles({
left: t.formatStyle(i, "%")
});
break;
case "lr":
t.applyStyles({
right: t.formatStyle(i, "%")
})
}
o = ["+y", "-x", "+x", "-y"],
r = new T(t)
}
var f = function(e, t) {
for (var r, n = new T(e), i = 1, o = 0; o < t.length; o++) {
for (; e.overlapsOppositeAxis(s, t[o]) || e.within(s) && e.overlapsAny(l); )
e.move(t[o]);
if (e.within(s))
return e;
var a = e.intersectPercentage(s);
a < i && (r = new T(e),
i = a),
e = new T(n)
}
return r || n
}(r, o);
t.move(f.toCSSCompatValues(s))
}
function i() {}
f.prototype.applyStyles = function(e, t) {
for (var r in t = t || this.div,
e)
e.hasOwnProperty(r) && (t.style[r] = e[r])
}
,
f.prototype.formatStyle = function(e, t) {
return 0 === e ? 0 : e + t
}
,
(b.prototype = r(f.prototype)).constructor = b,
T.prototype.move = function(e, t) {
switch (t = void 0 !== t ? t : this.lineHeight,
e) {
case "+x":
this.left += t,
this.right += t;
break;
case "-x":
this.left -= t,
this.right -= t;
break;
case "+y":
this.top += t,
this.bottom += t;
break;
case "-y":
this.top -= t,
this.bottom -= t
}
}
,
T.prototype.overlaps = function(e) {
return this.left < e.right && this.right > e.left && this.top < e.bottom && this.bottom > e.top
}
,
T.prototype.overlapsAny = function(e) {
for (var t = 0; t < e.length; t++)
if (this.overlaps(e[t]))
return !0;
return !1
}
,
T.prototype.within = function(e) {
return this.top >= e.top && this.bottom <= e.bottom && this.left >= e.left && this.right <= e.right
}
,
T.prototype.overlapsOppositeAxis = function(e, t) {
switch (t) {
case "+x":
return this.left < e.left;
case "-x":
return this.right > e.right;
case "+y":
return this.top < e.top;
case "-y":
return this.bottom > e.bottom
}
}
,
T.prototype.intersectPercentage = function(e) {
return Math.max(0, Math.min(this.right, e.right) - Math.max(this.left, e.left)) * Math.max(0, Math.min(this.bottom, e.bottom) - Math.max(this.top, e.top)) / (this.height * this.width)
}
,
T.prototype.toCSSCompatValues = function(e) {
return {
top: this.top - e.top,
bottom: e.bottom - this.bottom,
left: this.left - e.left,
right: e.right - this.right,
height: this.height,
width: this.width
}
}
,
T.getSimpleBoxPosition = function(e) {
var t = e.div ? e.div.offsetHeight : e.tagName ? e.offsetHeight : 0
, r = e.div ? e.div.offsetWidth : e.tagName ? e.offsetWidth : 0
, n = e.div ? e.div.offsetTop : e.tagName ? e.offsetTop : 0;
return {
left: (e = e.div ? e.div.getBoundingClientRect() : e.tagName ? e.getBoundingClientRect() : e).left,
right: e.right,
top: e.top || n,
height: e.height || t,
bottom: e.bottom || n + (e.height || t),
width: e.width || r
}
}
,
i.StringDecoder = function() {
return {
decode: function(e) {
if (!e)
return "";
if ("string" != typeof e)
throw new Error("Error - expected string data.");
return decodeURIComponent(encodeURIComponent(e))
}
}
}
,
i.convertCueToDOMTree = function(e, t) {
return e && t ? d(e, t) : null
}
;
i.processCues = function(n, i, e) {
if (!n || !i || !e)
return null;
for (; e.firstChild; )
e.removeChild(e.firstChild);
var o = n.document.createElement("div");
if (o.style.position = "absolute",
o.style.left = "0",
o.style.right = "0",
o.style.top = "0",
o.style.bottom = "0",
o.style.margin = "1.5%",
e.appendChild(o),
function(e) {
for (var t = 0; t < e.length; t++)
if (e[t].hasBeenReset || !e[t].displayState)
return !0;
return !1
}(i)) {
var a = []
, s = T.getSimpleBoxPosition(o)
, l = {
font: Math.round(.05 * s.height * 100) / 100 + "px sans-serif"
};
!function() {
for (var e, t, r = 0; r < i.length; r++)
t = i[r],
e = new b(n,t,l),
o.appendChild(e.div),
w(0, e, s, a),
t.displayState = e.div,
a.push(T.getSimpleBoxPosition(e))
}()
} else
for (var t = 0; t < i.length; t++)
o.appendChild(i[t].displayState)
}
,
(i.Parser = function(e, t, r) {
r || (r = t,
t = {}),
t || (t = {}),
this.window = e,
this.vttjs = t,
this.state = "INITIAL",
this.buffer = "",
this.decoder = r || new TextDecoder("utf8"),
this.regionList = []
}
).prototype = {
reportOrThrowError: function(e) {
if (!(e instanceof u))
throw e;
this.onparsingerror && this.onparsingerror(e)
},
parse: function(e) {
var o = this;
function t() {
for (var e = o.buffer, t = 0; t < e.length && "\r" !== e[t] && "\n" !== e[t]; )
++t;
var r = e.substr(0, t);
return "\r" === e[t] && ++t,
"\n" === e[t] && ++t,
o.buffer = e.substr(t),
r
}
function r(e) {
e.match(/X-TIMESTAMP-MAP/) ? h(e, function(e, t) {
switch (e) {
case "X-TIMESTAMP-MAP":
r = t,
n = new c,
h(r, function(e, t) {
switch (e) {
case "MPEGT":
n.integer(e + "S", t);
break;
case "LOCA":
n.set(e + "L", v(t))
}
}, /[^\d]:/, /,/),
o.ontimestampmap && o.ontimestampmap({
MPEGTS: n.get("MPEGTS"),
LOCAL: n.get("LOCAL")
})
}
var r, n
}, /=/) : h(e, function(e, t) {
switch (e) {
case "Region":
!function(e) {
var i = new c;
if (h(e, function(e, t) {
switch (e) {
case "id":
i.set(e, t);
break;
case "width":
i.percent(e, t);
break;
case "lines":
i.integer(e, t);
break;
case "regionanchor":
case "viewportanchor":
var r = t.split(",");
if (2 !== r.length)
break;
var n = new c;
if (n.percent("x", r[0]),
n.percent("y", r[1]),
!n.has("x") || !n.has("y"))
break;
i.set(e + "X", n.get("x")),
i.set(e + "Y", n.get("y"));
break;
case "scroll":
i.alt(e, t, ["up"])
}
}, /=/, /\s/),
i.has("id")) {
var t = new (o.vttjs.VTTRegion || o.window.VTTRegion);
t.width = i.get("width", 100),
t.lines = i.get("lines", 3),
t.regionAnchorX = i.get("regionanchorX", 0),
t.regionAnchorY = i.get("regionanchorY", 100),
t.viewportAnchorX = i.get("viewportanchorX", 0),
t.viewportAnchorY = i.get("viewportanchorY", 100),
t.scroll = i.get("scroll", ""),
o.onregion && o.onregion(t),
o.regionList.push({
id: i.get("id"),
region: t
})
}
}(t)
}
}, /:/)
}
e && (o.buffer += o.decoder.decode(e, {
stream: !0
}));
try {
var n;
if ("INITIAL" === o.state) {
if (!/\r\n|\n/.test(o.buffer))
return this;
var i = (n = t()).match(/^WEBVTT([ \t].*)?$/);
if (!i || !i[0])
throw new u(u.Errors.BadSignature);
o.state = "HEADER"
}
for (var a = !1; o.buffer; ) {
if (!/\r\n|\n/.test(o.buffer))
return this;
switch (a ? a = !1 : n = t(),
o.state) {
case "HEADER":
/:/.test(n) ? r(n) : n || (o.state = "ID");
continue;
case "NOTE":
n || (o.state = "ID");
continue;
case "ID":
if (/^NOTE($|[ \t])/.test(n)) {
o.state = "NOTE";
break
}
if (!n)
continue;
if (o.cue = new (o.vttjs.VTTCue || o.window.VTTCue)(0,0,""),
o.state = "CUE",
-1 === n.indexOf("--\x3e")) {
o.cue.id = n;
continue
}
case "CUE":
try {
l(n, o.cue, o.regionList)
} catch (e) {
o.reportOrThrowError(e),
o.cue = null,
o.state = "BADCUE";
continue
}
o.state = "CUETEXT";
continue;
case "CUETEXT":
var s = -1 !== n.indexOf("--\x3e");
if (!n || s && (a = !0)) {
o.oncue && o.oncue(o.cue),
o.cue = null,
o.state = "ID";
continue
}
o.cue.text && (o.cue.text += "\n"),
o.cue.text += n;
continue;
case "BADCUE":
n || (o.state = "ID");
continue
}
}
} catch (e) {
o.reportOrThrowError(e),
"CUETEXT" === o.state && o.cue && o.oncue && o.oncue(o.cue),
o.cue = null,
o.state = "INITIAL" === o.state ? "BADWEBVTT" : "BADCUE"
}
return this
},
flush: function() {
var t = this;
try {
if (t.buffer += t.decoder.decode(),
(t.cue || "HEADER" === t.state) && (t.buffer += "\n\n",
t.parse()),
"INITIAL" === t.state)
throw new u(u.Errors.BadSignature)
} catch (e) {
t.reportOrThrowError(e)
}
return t.onflush && t.onflush(),
this
}
},
e.exports = i
},
"./node_modules/videojs-vtt.js/lib/vttcue.js": function(e, t) {
var b = {
"": !0,
lr: !0,
rl: !0
}
, r = {
start: !0,
middle: !0,
end: !0,
left: !0,
right: !0
};
function T(e) {
return "string" == typeof e && (!!r[e.toLowerCase()] && e.toLowerCase())
}
function w(e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t];
for (var n in r)
e[n] = r[n]
}
return e
}
function n(e, t, r) {
var n = this
, i = /MSIE\s8\.0/.test(navigator.userAgent)
, o = {};
i ? n = document.createElement("custom") : o.enumerable = !0,
n.hasBeenReset = !1;
var a = ""
, s = !1
, l = e
, u = t
, c = r
, h = null
, d = ""
, p = !0
, f = "auto"
, v = "start"
, y = 50
, m = "middle"
, _ = 50
, g = "middle";
if (Object.defineProperty(n, "id", w({}, o, {
get: function() {
return a
},
set: function(e) {
a = "" + e
}
})),
Object.defineProperty(n, "pauseOnExit", w({}, o, {
get: function() {
return s
},
set: function(e) {
s = !!e
}
})),
Object.defineProperty(n, "startTime", w({}, o, {
get: function() {
return l
},
set: function(e) {
if ("number" != typeof e)
throw new TypeError("Start time must be set to a number.");
l = e,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "endTime", w({}, o, {
get: function() {
return u
},
set: function(e) {
if ("number" != typeof e)
throw new TypeError("End time must be set to a number.");
u = e,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "text", w({}, o, {
get: function() {
return c
},
set: function(e) {
c = "" + e,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "region", w({}, o, {
get: function() {
return h
},
set: function(e) {
h = e,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "vertical", w({}, o, {
get: function() {
return d
},
set: function(e) {
var t, r = "string" == typeof (t = e) && !!b[t.toLowerCase()] && t.toLowerCase();
if (!1 === r)
throw new SyntaxError("An invalid or illegal string was specified.");
d = r,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "snapToLines", w({}, o, {
get: function() {
return p
},
set: function(e) {
p = !!e,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "line", w({}, o, {
get: function() {
return f
},
set: function(e) {
if ("number" != typeof e && "auto" !== e)
throw new SyntaxError("An invalid number or illegal string was specified.");
f = e,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "lineAlign", w({}, o, {
get: function() {
return v
},
set: function(e) {
var t = T(e);
if (!t)
throw new SyntaxError("An invalid or illegal string was specified.");
v = t,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "position", w({}, o, {
get: function() {
return y
},
set: function(e) {
if (e < 0 || 100 < e)
throw new Error("Position must be between 0 and 100.");
y = e,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "positionAlign", w({}, o, {
get: function() {
return m
},
set: function(e) {
var t = T(e);
if (!t)
throw new SyntaxError("An invalid or illegal string was specified.");
m = t,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "size", w({}, o, {
get: function() {
return _
},
set: function(e) {
if (e < 0 || 100 < e)
throw new Error("Size must be between 0 and 100.");
_ = e,
this.hasBeenReset = !0
}
})),
Object.defineProperty(n, "align", w({}, o, {
get: function() {
return g
},
set: function(e) {
var t = T(e);
if (!t)
throw new SyntaxError("An invalid or illegal string was specified.");
g = t,
this.hasBeenReset = !0
}
})),
n.displayState = void 0,
i)
return n
}
n.prototype.getCueAsHTML = function() {
return WebVTT.convertCueToDOMTree(window, this.text)
}
,
e.exports = n
},
"./node_modules/videojs-vtt.js/lib/vttregion.js": function(e, t) {
var l = {
"": !0,
up: !0
};
function u(e) {
return "number" == typeof e && 0 <= e && e <= 100
}
e.exports = function() {
var t = 100
, r = 3
, n = 0
, i = 100
, o = 0
, a = 100
, s = "";
Object.defineProperties(this, {
width: {
enumerable: !0,
get: function() {
return t
},
set: function(e) {
if (!u(e))
throw new Error("Width must be between 0 and 100.");
t = e
}
},
lines: {
enumerable: !0,
get: function() {
return r
},
set: function(e) {
if ("number" != typeof e)
throw new TypeError("Lines must be set to a number.");
r = e
}
},
regionAnchorY: {
enumerable: !0,
get: function() {
return i
},
set: function(e) {
if (!u(e))
throw new Error("RegionAnchorX must be between 0 and 100.");
i = e
}
},
regionAnchorX: {
enumerable: !0,
get: function() {
return n
},
set: function(e) {
if (!u(e))
throw new Error("RegionAnchorY must be between 0 and 100.");
n = e
}
},
viewportAnchorY: {
enumerable: !0,
get: function() {
return a
},
set: function(e) {
if (!u(e))
throw new Error("ViewportAnchorY must be between 0 and 100.");
a = e
}
},
viewportAnchorX: {
enumerable: !0,
get: function() {
return o
},
set: function(e) {
if (!u(e))
throw new Error("ViewportAnchorX must be between 0 and 100.");
o = e
}
},
scroll: {
enumerable: !0,
get: function() {
return s
},
set: function(e) {
var t, r = "string" == typeof (t = e) && !!l[t.toLowerCase()] && t.toLowerCase();
if (!1 === r)
throw new SyntaxError("An invalid or illegal string was specified.");
s = r
}
}
})
}
}
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment