# HG changeset patch # User Dennis Fink # Date 2017-12-11 23:38:16 # Node ID 15a0838ef8e40c5e68d8696a73dd45718d20528c # Parent 548238f8358f3d5e74716cf23c025aa8c259d8f5 # Parent 7c0a409a383fd57e222af495df991f7d6177e2f6 Merged dev diff --git a/ennstatus/static/images/btc.png b/ennstatus/static/images/btc.png new file mode 100644 index 0000000000000000000000000000000000000000..358d5d911ff90b05209939aa6e781617b2f565ff GIT binary patch literal 546 zc$@(u0^R+IP)CK&wt|+A&cb*e< zir#4HiRbMV3d0Mx!GXqX?lgc$6nDPi=uj|UwH7K{e!lFo`l!;DsJ?7Yst-y+`5()pCo;iBnv zr16lTm{_spiRbOmvYmPle)a3yE{c<|){y6aZ$s5)D?l!j#vHolIDvemGqDoR9F&VY z-?wkU+0lgZG0~+Tv5X=ctE{*RK#yRiM zeCqvjCFUW!^R7=mZ_AWvx1zxk(Ae}OVDiwfc>lHRO1M40;uo)b-wB_3ye)Imt<{}( k_Rf_?^~^hr&i{A)0T`x}p&6hRW&i*H07*qoM6N<$f)*kSF#rGn diff --git a/ennstatus/static/images/eth.png b/ennstatus/static/images/eth.png new file mode 100644 index 0000000000000000000000000000000000000000..a707f695eb023ae4e39da5b852cc8780f12cfade GIT binary patch literal 425 zc$@*L0apHrP)$;m=ZInE^wo8w#iw`j)HXSN7?(DSC}edAl^ zJK1DUO?9td55~Q3^N)M~-i^uAySWQn{2sP?15S9&*ihCqAM7&88B3Ys*+0Y|g$u%F TED+%|00000NkvXXu0mjfnup8) diff --git a/ennstatus/static/images/partners/Logo-Piratepartei2014.png b/ennstatus/static/images/partners/Logo-Piratepartei2014.png index 1022173418d71a1fc550c328407c1e0a9b56632d..1ed61b3d9dee18964fb7ef7e2da1de012893b41e GIT binary patch literal 60057 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

nnz`7b3OIDfxUqmH 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 XnOXX|O<0LSFM?5&Q_BxkN1A> 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 z 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 E3wu_@9{>OV diff --git a/ennstatus/static/images/partners/logo-c3l.png b/ennstatus/static/images/partners/logo-c3l.png index 8b747af5b2561ef8a939d3356497782e0bbf6bfb..5d0319fcb86ae1c268d93b13f6f6a38275a41653 GIT binary patch literal 11007 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 T6qof+fT5wHtz55Y`{928MuNo} diff --git a/ennstatus/static/images/partners/torservers.png b/ennstatus/static/images/partners/torservers.png index e0f31ea58363f28741cac402bdfd427525dbf9fc..7ab9e1c2e614cff09593f72868f694fbebdc6e2a GIT binary patch literal 26931 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%0D)x1yhIhG{}nqyIJSxkvFpSrRajR# z(f(Z>E(1jQ-CXp|iOXn|;8(!n>@K&^zh01jSJCb+k1*SZH^$f{LP2-*uJ7Unz7a8? z|Ep1BE@PKp>^(6-WIt76BA6Fzc-Hg8%?WeYnVEAqf(~}%F0_&QIFQb%K-N?=WIKKz z9he^LK(mgSnQ?D@^uj~PkX7DbWgkFHxg|bqJO$0x-$Zp5C^;VOfWx3Qs~ zh0!y>g-*kzCUV_4tqQw-vKGVdeKsWwZQ6H!X;I4Jk-D7dBt)6NBK)*L4Bs!$EH9x5 z{YbS17IDMD+^yHt_f2NU`0==ILoKZu8z`1R?J0A_ec{4Vt6$xnm1c4Gi>^{FKL|Q* zKUVDN0!t1{shJD+>ujZ=sSQGSf!8_lHx3oQAoqoanoh|BA|aoSzT->p%E4|=K|ygo z@Puu{4X` + **D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG, and CSS. **D3** emphasizes web standards and combines powerful visualization components with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers without tying yourself to a proprietary framework. Want to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki) For examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock). + +## Good News, Everyone! + +The next major release of D3, 4.0, is coming! See the [4.0 development branch](https://github.com/mbostock/d3/tree/4) and read the [new API reference](https://github.com/mbostock/d3/blob/4/README.md) to get ready. diff --git a/ennstatus/static/js/d3/bower.json b/ennstatus/static/js/d3/bower.json --- a/ennstatus/static/js/d3/bower.json +++ b/ennstatus/static/js/d3/bower.json @@ -1,25 +1,7 @@ { "name": "d3", + "description": "A JavaScript visualization library for HTML and SVG.", "main": "d3.js", - "scripts": [ - "d3.js" - ], - "ignore": [ - ".DS_Store", - ".git", - ".gitignore", - ".npmignore", - ".spmignore", - ".travis.yml", - "Makefile", - "bin", - "component.json", - "composer.json", - "index.js", - "lib", - "node_modules", - "package.json", - "src", - "test" - ] + "license": "BSD-3-Clause", + "ignore": [] } diff --git a/ennstatus/static/js/d3/d3.js b/ennstatus/static/js/d3/d3.js --- a/ennstatus/static/js/d3/d3.js +++ b/ennstatus/static/js/d3/d3.js @@ -1,6 +1,6 @@ !function() { var d3 = { - version: "3.5.6" + version: "3.5.17" }; var d3_arraySlice = [].slice, d3_array = function(list) { return d3_arraySlice.call(list); @@ -220,20 +220,20 @@ while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ]; return pairs; }; + d3.transpose = function(matrix) { + if (!(n = matrix.length)) return []; + for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) { + for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) { + row[j] = matrix[j][i]; + } + } + return transpose; + }; + function d3_transposeLength(d) { + return d.length; + } d3.zip = function() { - if (!(n = arguments.length)) return []; - for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) { - for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) { - zip[j] = arguments[j][i]; - } - } - return zips; - }; - function d3_zipLength(d) { - return d.length; - } - d3.transpose = function(matrix) { - return d3.zip.apply(d3, matrix); + return d3.transpose(arguments); }; d3.keys = function(map) { var keys = []; @@ -620,9 +620,10 @@ return d3_selectAll(selector, this); }; } + var d3_nsXhtml = "http://www.w3.org/1999/xhtml"; var d3_nsPrefix = { svg: "http://www.w3.org/2000/svg", - xhtml: "http://www.w3.org/1999/xhtml", + xhtml: d3_nsXhtml, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" @@ -631,10 +632,7 @@ prefix: d3_nsPrefix, qualify: function(name) { var i = name.indexOf(":"), prefix = name; - if (i >= 0) { - prefix = name.slice(0, i); - name = name.slice(i + 1); - } + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); return d3_nsPrefix.hasOwnProperty(prefix) ? { space: d3_nsPrefix[prefix], local: name @@ -808,7 +806,7 @@ function d3_selection_creator(name) { function create() { var document = this.ownerDocument, namespace = this.namespaceURI; - return namespace ? document.createElementNS(namespace, name) : document.createElement(name); + return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name); } function createNS() { return this.ownerDocument.createElementNS(name.space, name.local); @@ -845,12 +843,14 @@ if (key) { var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue; for (i = -1; ++i < n; ) { - if (nodeByKeyValue.has(keyValue = key.call(node = group[i], node.__data__, i))) { - exitNodes[i] = node; - } else { - nodeByKeyValue.set(keyValue, node); + if (node = group[i]) { + if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues[i] = keyValue; } - keyValues[i] = keyValue; } for (i = -1; ++i < m; ) { if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) { @@ -862,7 +862,7 @@ nodeByKeyValue.set(keyValue, true); } for (i = -1; ++i < n; ) { - if (nodeByKeyValue.get(keyValues[i]) !== true) { + if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) { exitNodes[i] = group[i]; } } @@ -1054,7 +1054,7 @@ group = d3_array(d3_selectAll(nodes, d3_document)); group.parentNode = d3_document.documentElement; } else { - group = nodes; + group = d3_array(nodes); group.parentNode = null; } return d3_selection([ group ]); @@ -1205,7 +1205,7 @@ } function dragstart(id, position, subject, move, end) { return function() { - var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId); + var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId); if (origin) { dragOffset = origin.apply(that, arguments); dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; @@ -1233,7 +1233,7 @@ function ended() { if (!position(parent, dragId)) return; dragSubject.on(move + dragName, null).on(end + dragName, null); - dragRestore(dragged && d3.event.target === target); + dragRestore(dragged); dispatch({ type: "dragend" }); @@ -1285,18 +1285,22 @@ } var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4; d3.interpolateZoom = function(p0, p1) { - var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2]; - var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ; - function interpolate(t) { - var s = t * S; - if (dr) { - var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S; + if (d2 < ε2) { + S = Math.log(w1 / w0) / ρ; + i = function(t) { + return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ]; + }; + } else { + var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / ρ; + i = function(t) { + var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ]; - } - return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ]; - } - interpolate.duration = S * 1e3; - return interpolate; + }; + } + i.duration = S * 1e3; + return i; }; d3.behavior.zoom = function() { var view = { @@ -1366,8 +1370,9 @@ view = { x: view.x, y: view.y, - k: +_ + k: null }; + scaleTo(+_); rescale(); return zoom; }; @@ -1466,7 +1471,7 @@ }), center0 = null; } function mousedowned() { - var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that); + var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that); d3_selection_interrupt.call(that); zoomstarted(dispatch); function moved() { @@ -1476,7 +1481,7 @@ } function ended() { subject.on(mousemove, null).on(mouseup, null); - dragRestore(dragged && d3.event.target === target); + dragRestore(dragged); zoomended(dispatch); } } @@ -1698,9 +1703,8 @@ return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); } function d3_rgb_parse(format, rgb, hsl) { - format = format.toLowerCase(); var r = 0, g = 0, b = 0, m1, m2, color; - m1 = /([a-z]+)\((.*)\)/.exec(format); + m1 = /([a-z]+)\((.*)\)/.exec(format = format.toLowerCase()); if (m1) { m2 = m1[2].split(","); switch (m1[1]) { @@ -2115,17 +2119,19 @@ }; d3.csv = d3.dsv(",", "text/csv"); d3.tsv = d3.dsv(" ", "text/tab-separated-values"); - var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { + var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { setTimeout(callback, 17); }; - d3.timer = function(callback, delay, then) { + d3.timer = function() { + d3_timer.apply(this, arguments); + }; + function d3_timer(callback, delay, then) { var n = arguments.length; if (n < 2) delay = 0; if (n < 3) then = Date.now(); var time = then + delay, timer = { c: callback, t: time, - f: false, n: null }; if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer; @@ -2135,7 +2141,8 @@ d3_timer_interval = 1; d3_timer_frame(d3_timer_step); } - }; + return timer; + } function d3_timer_step() { var now = d3_timer_mark(), delay = d3_timer_sweep() - now; if (delay > 24) { @@ -2154,22 +2161,21 @@ d3_timer_sweep(); }; function d3_timer_mark() { - var now = Date.now(); - d3_timer_active = d3_timer_queueHead; - while (d3_timer_active) { - if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t); - d3_timer_active = d3_timer_active.n; + var now = Date.now(), timer = d3_timer_queueHead; + while (timer) { + if (now >= timer.t && timer.c(now - timer.t)) timer.c = null; + timer = timer.n; } return now; } function d3_timer_sweep() { var t0, t1 = d3_timer_queueHead, time = Infinity; while (t1) { - if (t1.f) { - t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; - } else { + if (t1.c) { if (t1.t < time) time = t1.t; t1 = (t0 = t1).n; + } else { + t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; } } d3_timer_queueTail = t0; @@ -2184,7 +2190,7 @@ var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); d3.formatPrefix = function(value, precision) { var i = 0; - if (value) { + if (value = +value) { if (value < 0) value *= -1; if (precision) value = d3.round(value, d3_format_precision(value, precision)); i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); @@ -2534,7 +2540,8 @@ if (i != string.length) return null; if ("p" in d) d.H = d.H % 12 + d.p * 12; var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)(); - if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("w" in d && ("W" in d || "U" in d)) { + if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("W" in d || "U" in d) { + if (!("w" in d)) d.w = "W" in d ? 1 : 0; date.setFullYear(d.y, 0, 1); date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); } else date.setFullYear(d.y, d.m, d.d); @@ -3518,7 +3525,7 @@ λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; } } - return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1; + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1; } function d3_geo_clipCircle(radius) { var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); @@ -5986,54 +5993,68 @@ f: 0 }; d3.interpolateTransform = d3_interpolateTransform; - function d3_interpolateTransform(a, b) { - var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale; - if (ta[0] != tb[0] || ta[1] != tb[1]) { - s.push("translate(", null, ",", null, ")"); + function d3_interpolateTransformPop(s) { + return s.length ? s.pop() + "," : ""; + } + function d3_interpolateTranslate(ta, tb, s, q) { + if (ta[0] !== tb[0] || ta[1] !== tb[1]) { + var i = s.push("translate(", null, ",", null, ")"); q.push({ - i: 1, + i: i - 4, x: d3_interpolateNumber(ta[0], tb[0]) }, { - i: 3, + i: i - 2, x: d3_interpolateNumber(ta[1], tb[1]) }); } else if (tb[0] || tb[1]) { s.push("translate(" + tb + ")"); - } else { - s.push(""); - } - if (ra != rb) { + } + } + function d3_interpolateRotate(ra, rb, s, q) { + if (ra !== rb) { if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; q.push({ - i: s.push(s.pop() + "rotate(", null, ")") - 2, + i: s.push(d3_interpolateTransformPop(s) + "rotate(", null, ")") - 2, x: d3_interpolateNumber(ra, rb) }); } else if (rb) { - s.push(s.pop() + "rotate(" + rb + ")"); - } - if (wa != wb) { + s.push(d3_interpolateTransformPop(s) + "rotate(" + rb + ")"); + } + } + function d3_interpolateSkew(wa, wb, s, q) { + if (wa !== wb) { q.push({ - i: s.push(s.pop() + "skewX(", null, ")") - 2, + i: s.push(d3_interpolateTransformPop(s) + "skewX(", null, ")") - 2, x: d3_interpolateNumber(wa, wb) }); } else if (wb) { - s.push(s.pop() + "skewX(" + wb + ")"); - } - if (ka[0] != kb[0] || ka[1] != kb[1]) { - n = s.push(s.pop() + "scale(", null, ",", null, ")"); + s.push(d3_interpolateTransformPop(s) + "skewX(" + wb + ")"); + } + } + function d3_interpolateScale(ka, kb, s, q) { + if (ka[0] !== kb[0] || ka[1] !== kb[1]) { + var i = s.push(d3_interpolateTransformPop(s) + "scale(", null, ",", null, ")"); q.push({ - i: n - 4, + i: i - 4, x: d3_interpolateNumber(ka[0], kb[0]) }, { - i: n - 2, + i: i - 2, x: d3_interpolateNumber(ka[1], kb[1]) }); - } else if (kb[0] != 1 || kb[1] != 1) { - s.push(s.pop() + "scale(" + kb + ")"); - } - n = q.length; + } else if (kb[0] !== 1 || kb[1] !== 1) { + s.push(d3_interpolateTransformPop(s) + "scale(" + kb + ")"); + } + } + function d3_interpolateTransform(a, b) { + var s = [], q = []; + a = d3.transform(a), b = d3.transform(b); + d3_interpolateTranslate(a.translate, b.translate, s, q); + d3_interpolateRotate(a.rotate, b.rotate, s, q); + d3_interpolateSkew(a.skew, b.skew, s, q); + d3_interpolateScale(a.scale, b.scale, s, q); + a = b = null; return function(t) { - var i = -1, o; + var i = -1, n = q.length, o; while (++i < n) s[(o = q[i]).i] = o.x(t); return s.join(""); }; @@ -6137,7 +6158,7 @@ index: di, startAngle: x0, endAngle: x, - value: (x - x0) / k + value: groupSums[di] }; x += padding; } @@ -6205,7 +6226,7 @@ return chord; }; d3.layout.force = function() { - var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; + var force = {}, event = d3.dispatch("start", "tick", "end"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; function repulse(node) { return function(quad, x1, _, x2) { if (quad.point !== node) { @@ -6229,6 +6250,7 @@ } force.tick = function() { if ((alpha *= .99) < .005) { + timer = null; event.end({ type: "end", alpha: alpha = 0 @@ -6246,7 +6268,7 @@ l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; x *= l; y *= l; - t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5); t.y -= y * k; s.x += x * (k = 1 - k); s.y += y * k; @@ -6342,13 +6364,21 @@ if (!arguments.length) return alpha; x = +x; if (alpha) { - if (x > 0) alpha = x; else alpha = 0; + if (x > 0) { + alpha = x; + } else { + timer.c = null, timer.t = NaN, timer = null; + event.end({ + type: "end", + alpha: alpha = 0 + }); + } } else if (x > 0) { event.start({ type: "start", alpha: alpha = x }); - d3.timer(force.tick); + timer = d3_timer(force.tick); } return force; }; @@ -6602,7 +6632,7 @@ function pie(data) { var n = data.length, values = data.map(function(d, i) { return +value.call(pie, d, i); - }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), k = (da - n * pa) / d3.sum(values), index = d3.range(n), arcs = [], v; + }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v; if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { return values[j] - values[i]; } : function(i, j) { @@ -7315,10 +7345,8 @@ } function treemap(d) { var nodes = stickies || hierarchy(d), root = nodes[0]; - root.x = 0; - root.y = 0; - root.dx = size[0]; - root.dy = size[1]; + root.x = root.y = 0; + if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0; if (stickies) hierarchy.revalue(root); scale([ root ], root.dx * root.dy / root.value); (stickies ? stickify : squarify)(root); @@ -7538,7 +7566,9 @@ return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); } function d3_scale_linearNice(domain, m) { - return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + return domain; } function d3_scale_linearTickRange(domain, m) { if (m == null) m = 10; @@ -7640,10 +7670,11 @@ scale.tickFormat = function(n, format) { if (!arguments.length) return d3_scale_logFormat; if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format); - var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12, - Math.floor), e; + var k = Math.max(1, base * n / scale.ticks().length); return function(d) { - return d / pow(f(log(d) + e)) <= k ? format(d) : ""; + var i = d / pow(Math.round(log(d))); + if (i * base < base - .5) i *= base; + return i <= k ? format(d) : ""; }; }; scale.copy = function() { @@ -7982,11 +8013,16 @@ } else { x2 = y2 = 0; } - if ((rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) { + if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) { cr = r0 < r1 ^ cw ? 0 : 1; - var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + var rc1 = rc, rc0 = rc; + if (da < π) { + var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = Math.min(rc, (r0 - lc) / (kc - 1)); + rc1 = Math.min(rc, (r1 - lc) / (kc + 1)); + } if (x1 != null) { - var rc1 = Math.min(rc, (r1 - lc) / (kc + 1)), t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw); + var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw); if (rc === rc1) { path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]); } else { @@ -7996,7 +8032,7 @@ path.push("M", x0, ",", y0); } if (x3 != null) { - var rc0 = Math.min(rc, (r0 - lc) / (kc - 1)), t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw); + var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw); if (rc === rc0) { path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); } else { @@ -8078,7 +8114,7 @@ return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1; } function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) { - var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(r * r * d2 - D * D), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3; + var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3; if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ]; } @@ -8150,10 +8186,10 @@ value.closed = /-closed$/.test(key); }); function d3_svg_lineLinear(points) { - return points.join("L"); + return points.length > 1 ? points.join("L") : points + "Z"; } function d3_svg_lineLinearClosed(points) { - return d3_svg_lineLinear(points) + "Z"; + return points.join("L") + "Z"; } function d3_svg_lineStep(points) { var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; @@ -8175,7 +8211,7 @@ return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension)); } function d3_svg_lineCardinalClosed(points, tension) { - return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), + return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); } function d3_svg_lineCardinal(points, tension) { @@ -8611,9 +8647,11 @@ var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace()); function d3_selection_interruptNS(ns) { return function() { - var lock, active; - if ((lock = this[ns]) && (active = lock[lock.active])) { - if (--lock.count) delete lock[lock.active]; else delete this[ns]; + var lock, activeId, active; + if ((lock = this[ns]) && (active = lock[activeId = lock.active])) { + active.timer.c = null; + active.timer.t = NaN; + if (--lock.count) delete lock[activeId]; else delete this[ns]; lock.active += .5; active.event && active.event.interrupt.call(this, this.__data__, active.index); } @@ -8868,12 +8906,68 @@ var lock = node[ns] || (node[ns] = { active: 0, count: 0 - }), transition = lock[id]; + }), transition = lock[id], time, timer, duration, ease, tweens; + function schedule(elapsed) { + var delay = transition.delay; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; + } + function start(elapsed) { + var activeId = lock.active, active = lock[activeId]; + if (active) { + active.timer.c = null; + active.timer.t = NaN; + --lock.count; + delete lock[activeId]; + active.event && active.event.interrupt.call(node, node.__data__, active.index); + } + for (var cancelId in lock) { + if (+cancelId < id) { + var cancel = lock[cancelId]; + cancel.timer.c = null; + cancel.timer.t = NaN; + --lock.count; + delete lock[cancelId]; + } + } + timer.c = tick; + d3_timer(function() { + if (timer.c && tick(elapsed || 1)) { + timer.c = null; + timer.t = NaN; + } + return 1; + }, 0, time); + lock.active = id; + transition.event && transition.event.start.call(node, node.__data__, i); + tweens = []; + transition.tween.forEach(function(key, value) { + if (value = value.call(node, node.__data__, i)) { + tweens.push(value); + } + }); + ease = transition.ease; + duration = transition.duration; + } + function tick(elapsed) { + var t = elapsed / duration, e = ease(t), n = tweens.length; + while (n > 0) { + tweens[--n].call(node, e); + } + if (t >= 1) { + transition.event && transition.event.end.call(node, node.__data__, i); + if (--lock.count) delete lock[id]; else delete node[ns]; + return 1; + } + } if (!transition) { - var time = inherit.time; + time = inherit.time; + timer = d3_timer(schedule, 0, time); transition = lock[id] = { tween: new d3_Map(), time: time, + timer: timer, delay: inherit.delay, duration: inherit.duration, ease: inherit.ease, @@ -8881,49 +8975,6 @@ }; inherit = null; ++lock.count; - d3.timer(function(elapsed) { - var delay = transition.delay, duration, ease, timer = d3_timer_active, tweened = []; - timer.t = delay + time; - if (delay <= elapsed) return start(elapsed - delay); - timer.c = start; - function start(elapsed) { - if (lock.active > id) return stop(); - var active = lock[lock.active]; - if (active) { - --lock.count; - delete lock[lock.active]; - active.event && active.event.interrupt.call(node, node.__data__, active.index); - } - lock.active = id; - transition.event && transition.event.start.call(node, node.__data__, i); - transition.tween.forEach(function(key, value) { - if (value = value.call(node, node.__data__, i)) { - tweened.push(value); - } - }); - ease = transition.ease; - duration = transition.duration; - d3.timer(function() { - timer.c = tick(elapsed || 1) ? d3_true : tick; - return 1; - }, 0, time); - } - function tick(elapsed) { - if (lock.active !== id) return 1; - var t = elapsed / duration, e = ease(t), n = tweened.length; - while (n > 0) { - tweened[--n].call(node, e); - } - if (t >= 1) { - transition.event && transition.event.end.call(node, node.__data__, i); - return stop(); - } - } - function stop() { - if (--lock.count) delete lock[id]; else delete node[ns]; - return 1; - } - }, 0, time); } } d3.svg.axis = function() { @@ -8977,7 +9028,7 @@ }; axis.ticks = function() { if (!arguments.length) return tickArguments_; - tickArguments_ = arguments; + tickArguments_ = d3_array(arguments); return axis; }; axis.tickValues = function(x) { @@ -9499,6 +9550,5 @@ d3.xml = d3_xhrType(function(request) { return request.responseXML; }); - if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; - this.d3 = d3; + if (typeof define === "function" && define.amd) this.d3 = d3, define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; else this.d3 = d3; }(); \ No newline at end of file diff --git a/ennstatus/static/js/d3/d3.min.js b/ennstatus/static/js/d3/d3.min.js --- a/ennstatus/static/js/d3/d3.min.js +++ b/ennstatus/static/js/d3/d3.min.js @@ -1,5 +1,5 @@ -!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function r(n){return null===n?0/0:+n}function u(n){return!isNaN(n)}function i(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function c(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function l(){this._=Object.create(null)}function s(n){return(n+="")===pa||n[0]===va?va+n:n}function f(n){return(n+="")[0]===va?n.slice(1):n}function h(n){return s(n)in this._}function g(n){return(n=s(n))in this._&&delete this._[n]}function p(){var n=[];for(var t in this._)n.push(f(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function m(){this._=Object.create(null)}function y(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=da.length;r>e;++e){var u=da[e]+t;if(u in n)return u}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,u=-1,i=r.length;++ue;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function Z(n){return ya(n,Sa),n}function V(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var l=ka.get(n);return l&&(n=l,c=B),a?t?u:r:t?b:i}function $(n,t){return function(e){var r=ta.event;ta.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ta.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Aa,u="click"+r,i=ta.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ea&&(Ea="onselectstart"in e?!1:x(e.style,"userSelect")),Ea){var o=n(e).style,a=o[Ea];o[Ea]="none"}return function(n){if(i.on(r,null),Ea&&(o[Ea]=a),n){var t=function(){i.on(u,null)};i.on(u,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var u=r.createSVGPoint();if(0>Na){var i=t(n);if(i.scrollX||i.scrollY){r=ta.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Na=!(o.f||o.e),r.remove()}}return Na?(u.x=e.pageX,u.y=e.pageY):(u.x=e.clientX,u.y=e.clientY),u=u.matrixTransform(n.getScreenCTM().inverse()),[u.x,u.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ta.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nt(n){return n>1?0:-1>n?qa:Math.acos(n)}function tt(n){return n>1?Ra:-1>n?-Ra:Math.asin(n)}function et(n){return((n=Math.exp(n))-1/n)/2}function rt(n){return((n=Math.exp(n))+1/n)/2}function ut(n){return((n=Math.exp(2*n))-1)/(n+1)}function it(n){return(n=Math.sin(n/2))*n}function ot(){}function at(n,t,e){return this instanceof at?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof at?new at(n.h,n.s,n.l):bt(""+n,_t,at):new at(n,t,e)}function ct(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new mt(u(n+120),u(n),u(n-120))}function lt(n,t,e){return this instanceof lt?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof lt?new lt(n.h,n.c,n.l):n instanceof ft?gt(n.l,n.a,n.b):gt((n=wt((n=ta.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new lt(n,t,e)}function st(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new ft(e,Math.cos(n*=Da)*t,Math.sin(n)*t)}function ft(n,t,e){return this instanceof ft?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof ft?new ft(n.l,n.a,n.b):n instanceof lt?st(n.h,n.c,n.l):wt((n=mt(n)).r,n.g,n.b):new ft(n,t,e)}function ht(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=pt(u)*Xa,r=pt(r)*$a,i=pt(i)*Ba,new mt(dt(3.2404542*u-1.5371385*r-.4985314*i),dt(-.969266*u+1.8760108*r+.041556*i),dt(.0556434*u-.2040259*r+1.0572252*i))}function gt(n,t,e){return n>0?new lt(Math.atan2(e,t)*Pa,Math.sqrt(t*t+e*e),n):new lt(0/0,0/0,n)}function pt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function dt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mt(n,t,e){return this instanceof mt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mt?new mt(n.r,n.g,n.b):bt(""+n,mt,ct):new mt(n,t,e)}function yt(n){return new mt(n>>16,n>>8&255,255&n)}function Mt(n){return yt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bt(n,t,e){n=n.toLowerCase();var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(kt(u[0]),kt(u[1]),kt(u[2]))}return(i=Ga.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new at(r,u,c)}function wt(n,t,e){n=St(n),t=St(t),e=St(e);var r=vt((.4124564*n+.3575761*t+.1804375*e)/Xa),u=vt((.2126729*n+.7151522*t+.072175*e)/$a),i=vt((.0193339*n+.119192*t+.9503041*e)/Ba);return ft(116*u-16,500*(r-u),200*(u-i))}function St(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function kt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function Et(n){return"function"==typeof n?n:function(){return n}}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Nt(t,e,n,r)}}function Nt(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return void o.error.call(i,r)}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=ta.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!this.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=ta.event;ta.event=n;try{o.progress.call(i,c)}finally{ta.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(ra(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},ta.rebind(i,o,"on"),null==r?i:i.get(Ct(r))}function Ct(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qt(){var n=Lt(),t=Tt()-n;t>24?(isFinite(t)&&(clearTimeout(tc),tc=setTimeout(qt,t)),nc=0):(nc=1,rc(qt))}function Lt(){var n=Date.now();for(ec=Ka;ec;)n>=ec.t&&(ec.f=ec.c(n-ec.t)),ec=ec.n;return n}function Tt(){for(var n,t=Ka,e=1/0;t;)t.f?t=n?n.n=t.n:Ka=t.n:(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:y;return function(n){var e=ic.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=oc.get(g)||Ut;var M=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=ta.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=y?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!l&&f&&(x=i(x,1/0));var S=v.length+x.length+b.length+(M?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return M&&(x=i(k+x,k.length?s-b.length:1/0)),u+=v,n=x+b,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(M?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new cc(e-1)),1),e}function i(n,e){return t(n=new cc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{cc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{cc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{cc=jt;var r=new jt;return r._=t,n(r,e)._}finally{cc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++aa;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=C[o in sc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,N.c.toString(),t,r)}function c(n,t,r){return e(n,N.x.toString(),t,r)}function l(n,t,r){return e(n,N.X.toString(),t,r)}function s(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{cc=jt;var t=new cc;return t._=n,r(t)}finally{cc=Date}}var r=t(n);return e.parse=function(n){try{cc=jt;var t=r.parse(n);return t&&t._}finally{cc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var M=ta.map(),x=Yt(v),b=Zt(v),_=Yt(d),w=Zt(d),S=Yt(m),k=Zt(m),E=Yt(y),A=Zt(y);p.forEach(function(n,t){M.set(n.toLowerCase(),t)});var N={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return It(n.getDate(),t,2)},e:function(n,t){return It(n.getDate(),t,2)},H:function(n,t){return It(n.getHours(),t,2)},I:function(n,t){return It(n.getHours()%12||12,t,2)},j:function(n,t){return It(1+ac.dayOfYear(n),t,3)},L:function(n,t){return It(n.getMilliseconds(),t,3)},m:function(n,t){return It(n.getMonth()+1,t,2)},M:function(n,t){return It(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return It(n.getSeconds(),t,2)},U:function(n,t){return It(ac.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return It(ac.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return It(n.getFullYear()%100,t,2)},Y:function(n,t){return It(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},C={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function It(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Yt(n){return new RegExp("^(?:"+n.map(ta.requote).join("|")+")","i")}function Zt(n){for(var t=new l,e=-1,r=n.length;++e68?1900:2e3)}function Kt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=ga(t)/60|0,u=ga(t)%60;return e+It(r,"0",2)+It(u,"0",2)}function oe(n,t,e){hc.lastIndex=0;var r=hc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);yc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;Mc.point=function(o,a){Mc.point=n,r=(t=o)*Da,u=Math.cos(a=(e=a)*Da/2+qa/4),i=Math.sin(a)},Mc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Me(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function xe(n){return[Math.atan2(n[1],n[0]),tt(n[2])]}function be(n,t){return ga(n[0]-t[0])a;++a)u.point((e=n[a])[0],e[1]);return void u.lineEnd()}var c=new qe(e,n,null,!0),l=new qe(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new qe(r,n,null,!1),l=new qe(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),ze(i),ze(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ze(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r0){for(b||(i.polygonStart(),b=!0),i.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=ta.merge(g);var n=Fe(m,p);g.length?(b||(i.polygonStart(),b=!0),Ce(g,De,n,e,i)):n&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},M=Re(),x=t(M),b=!1;return y}}function Te(n){return n.length>1}function Re(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function De(n,t){return((n=n.x)[0]<0?n[1]-Ra-Ca:Ra-n[1])-((t=t.x)[0]<0?t[1]-Ra-Ca:Ra-t[1])}function Pe(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?qa:-qa,c=ga(i-e);ga(c-qa)0?Ra:-Ra),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=qa&&(ga(e-u)Ca?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function je(n,t,e,r){var u;if(null==n)u=e*Ra,r.point(-qa,u),r.point(0,u),r.point(qa,u),r.point(qa,0),r.point(qa,-u),r.point(0,-u),r.point(-qa,-u),r.point(-qa,0),r.point(-qa,u);else if(ga(n[0]-t[0])>Ca){var i=n[0]a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+qa/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+qa/4,M=Math.sin(y),x=Math.cos(y),b=m-h,_=b>=0?1:-1,w=_*b,S=w>qa,k=p*M;if(yc.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),i+=S?b+_*La:b,S^h>=e^m>=e){var E=de(pe(f),pe(n));Me(E);var A=de(u,E);Me(A);var N=(S^b>=0?-1:1)*tt(A[2]);(r>N||r===N&&(E[0]||E[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=m,p=M,v=x,f=n}}return(-Ca>i||Ca>i&&0>yc)^1&o}function He(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?qa:-qa),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(be(e,g)||be(p,g))&&(p[0]+=Ca,p[1]+=Ca,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&be(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),M=m*m-y*(ve(p,p)-1);if(!(0>M)){var x=Math.sqrt(M),b=ye(d,(-m-x)/y);if(me(b,p),b=xe(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(_=w,w=S,S=_);var A=S-w,N=ga(A-qa)A;if(!N&&k>E&&(_=k,k=E,E=_),C?N?k+E>0^b[1]<(ga(b[0]-w)qa^(w<=b[0]&&b[0]<=S)){var z=ye(d,(-m+x)/y);return me(z,p),[b,xe(z)]}}}function u(t,e){var r=o?n:qa-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ga(i)>Ca,c=gr(n,6*Da);return Le(t,e,c,o?[0,-n]:[-qa,n-qa])}function Oe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Ie(n,t,e,r){function u(r,u){return ga(r[0]-n)0?0:3:ga(r[0]-e)0?2:1:ga(r[1]-t)0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&Q(l,i,n)>0&&++t:i[1]<=r&&Q(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){C.point=p,d&&d.push(m=[]),S=!0,w=!1,b=_=0/0}function g(){v&&(p(y,M),x&&w&&A.rejoin(),v.push(A.buffer())),C.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Tc,Math.min(Tc,n)),t=Math.max(-Tc,Math.min(Tc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};N(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,m,y,M,x,b,_,w,S,k,E=a,A=Re(),N=Oe(n,t,e,r),C={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=ta.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return C}}function Ye(n){var t=0,e=qa/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*qa/180,e=n[1]*qa/180):[t/qa*180,e/qa*180]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,tt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Dc+=u*n-r*t,r=n,u=t}var t,e,r,u;Hc.point=function(i,o){Hc.point=n,t=r=i,e=u=o},Hc.lineEnd=function(){n(t,e)}}function Xe(n,t){Pc>n&&(Pc=n),n>jc&&(jc=n),Uc>t&&(Uc=t),t>Fc&&(Fc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){_c+=n,wc+=t,++Sc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);kc+=o*(t+n)/2,Ec+=o*(e+r)/2,Ac+=o,We(t=n,e=r)}var t,e;Ic.point=function(r,u){Ic.point=n,We(t=r,e=u)}}function Ge(){Ic.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);kc+=o*(r+n)/2,Ec+=o*(u+t)/2,Ac+=o,o=u*n-r*t,Nc+=o*(r+n),Cc+=o*(u+t),zc+=3*o,We(r=n,u=t)}var t,e,r,u;Ic.point=function(i,o){Ic.point=n,We(t=r=i,e=u=o)},Ic.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,La)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(M,x,y,b,_,w,M=o[0],x=o[1],y=e,b=i[0],_=i[1],w=i[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=M,p=x,v=b,d=_,m=w,S.point=i}function s(){u(M,x,y,b,_,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c -},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,M=f-e,x=y*y+M*M;if(x>4*i&&d--){var b=a+g,_=c+p,w=l+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),E=ga(ga(w)-1)i||ga((y*z+M*q)/x-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,N,C,E,b/=S,_/=S,w,d,m),m.point(N,C),u(N,C,E,b,_,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Da),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Pa,e*Pa])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*Da,n[1]*Da),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Pa,n[1]*Pa]}function r(){a=Ae(o=lr(m,M,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,M=0,x=0,b=Lc,_=y,w=null,S=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(b(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Lc):He((w=+n)*Da),u()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Ie(n[0][0],n[0][1],n[1][0],n[1][1]):y,u()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Da,d=n[1]%360*Da,r()):[v*Pa,d*Pa]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Da,M=n[1]%360*Da,x=n.length>2?n[2]%360*Da:0,r()):[m*Pa,M*Pa,x*Pa]},ta.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*Da,e*Da)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>qa?n-La:-qa>n?n+La:n,t]}function lr(n,t,e){return n?t||e?Ae(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>qa?t-La:-qa>t?t+La:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),tt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),tt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*La)):(u=n+o*La,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=xe([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,Me(e);var r=nt(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ca)%(2*Math.PI)}function vr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function Mr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(it(r-t)+u*o*it(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Pa,Math.atan2(o,Math.sqrt(r*r+u*u))*Pa]}:function(){return[n*Pa,t*Pa]};return p.distance=h,p}function xr(){function n(n,u){var i=Math.sin(u*=Da),o=Math.cos(u),a=ga((n*=Da)-t),c=Math.cos(a);Yc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Zc.point=function(u,i){t=u*Da,e=Math.sin(i*=Da),r=Math.cos(i),Zc.point=n},Zc.lineEnd=function(){Zc.point=Zc.lineEnd=b}}function br(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function _r(n,t){function e(n,t){o>0?-Ra+Ca>t&&(t=-Ra+Ca):t>Ra-Ca&&(t=Ra-Ca);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(qa/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=K(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ra]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ga(u)u;u++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function qr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Lr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function Tr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=el.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Qc.remove(n),el.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ga(e-c.circle.x)s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Qc._;a;)if(r=Fr(a,o)-i,r>Ca)a=a.L;else{if(u=i-Hr(a,o),!(u>Ca)){r>-Ca?(t=a.P,e=a):u>-Ca?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Qc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Qc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),void Vr(e);if(!e)return void(c.edge=Jr(t.site,c.site));Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,M=v*v+d*d,x={x:(d*y-g*M)/m+s,y:(h*M-v*y)/m+f};Kr(e.edge,l,p,x),c.edge=Jr(l,n,null,x),e.edge=Jr(n,p,null,x),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Ir(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Kc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ga(r-t)>Ca||ga(u-e)>Ca)&&(a.splice(o,0,new Qr(Gr(i.site,s,ga(r-f)Ca?{x:f,y:ga(t-f)Ca?{x:ga(e-p)Ca?{x:h,y:ga(t-h)Ca?{x:ga(e-g)=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=rl.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,M=tl._;M;)if(m.yd||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.yr||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.yg){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.xi||f>o||r>h||u>g)){if(p=n.point){var p,v=t-n.x,d=e-n.y,m=v*v+d*d;if(c>m){var y=Math.sqrt(c=m);r=t-y,u=e-y,i=t+y,o=e+y,a=p}}for(var M=n.nodes,x=.5*(s+h),b=.5*(f+g),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:l(n,s,f,x,b);break;case 1:l(n,x,f,h,b);break;case 2:l(n,s,b,x,g);break;case 3:l(n,x,b,h,g)}}}(n,r,u,i,o),a}function gu(n,t){n=ta.rgb(n),t=ta.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function pu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=mu(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function vu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function du(n,t){var e,r,u,i=il.lastIndex=ol.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=il.exec(n))&&(r=ol.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:vu(e,r)})),i=ol.lastIndex;return ir;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function mu(n,t){for(var e,r=ta.interpolators.length;--r>=0&&!(e=ta.interpolators[r](n,t)););return e}function yu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(mu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function Mu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function bu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function wu(n){return n*n*n}function Su(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function ku(n){return function(t){return Math.pow(t,n)}}function Eu(n){return 1-Math.cos(n*Ra)}function Au(n){return Math.pow(2,10*(n-1))}function Nu(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/La*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*La/t)}}function zu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=ta.hcl(n),t=ta.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return st(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=ta.hsl(n),t=ta.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){n=ta.lab(n),t=ta.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ht(e+i*n,r+o*n,u+a*n)+""}}function Du(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Pu(n){var t=[n.a,n.b],e=[n.c,n.d],r=ju(t),u=Uu(t,e),i=ju(Fu(e,t,-u))||0;t[0]*e[1]180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:vu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:vu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:vu(g[0],p[0])},{i:e-2,x:vu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i=0;)e.push(u[r])}function Qu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++oe;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function si(n){return n.reduce(fi,0)}function fi(n,t){return n+t[1]}function hi(n,t){return gi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function gi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function pi(n){return[ta.min(n),ta.max(n)]}function vi(n,t){return n.value-t.value}function di(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function mi(n,t){n._pack_next=t,t._pack_prev=n}function yi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Mi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],wi(r,u,i),t(i),di(r,i),r._pack_prev=i,di(i,u),u=r._pack_next,o=3;l>o;o++){wi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(yi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!yi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.ro;o++)i=e[o],i.x-=m,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=M,e.forEach(bi)}}function xi(n){n._pack_next=n._pack_prev=n}function bi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function zi(n){return 1+ta.max(n,function(n){return n.y})}function qi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function Ri(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Di(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Pi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ui(n){return n.rangeExtent?n.rangeExtent():Pi(n.range())}function ji(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Fi(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Hi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ml}function Oi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Oi:ji,c=r?Iu:Ou;return o=u(n,t,c,e),a=u(t,n,c,mu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Du)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Xi(n,t)},i.tickFormat=function(t,e){return $i(n,t,e)},i.nice=function(t){return Zi(n,t),u()},i.copy=function(){return Ii(n,t,e,r)},u()}function Yi(n,t){return ta.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Zi(n,t){return Fi(n,Hi(Vi(n,t)[2]))}function Vi(n,t){null==t&&(t=10);var e=Pi(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Xi(n,t){return ta.range.apply(ta,Vi(n,t))}function $i(n,t,e){var r=Vi(n,t);if(e){var u=ic.exec(e);if(u.shift(),"s"===u[8]){var i=ta.formatPrefix(Math.max(ga(r[0]),ga(r[1])));return u[7]||(u[7]="."+Bi(i.scale(r[2]))),u[8]="f",e=ta.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Wi(u[8],r)),e=u.join("")}else e=",."+Bi(r[2])+"f";return ta.format(e)}function Bi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Wi(n,t){var e=Bi(t[2]);return n in yl?Math.abs(e-Bi(Math.max(ga(t[0]),ga(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Ji(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Fi(r.map(u),e?Math:xl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Pi(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++0;h--)o.push(i(l)*h);for(l=0;o[l]c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return Ml;arguments.length<2?t=Ml:"function"!=typeof t&&(t=ta.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Ji(n.copy(),t,e,r)},Yi(o,n)}function Gi(n,t,e){function r(t){return n(u(t))}var u=Ki(t),i=Ki(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Xi(e,n)},r.tickFormat=function(n,t){return $i(e,n,t)},r.nice=function(n){return r.domain(Zi(e,n))},r.exponent=function(o){return arguments.length?(u=Ki(t=o),i=Ki(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Gi(n.copy(),t,e)},Yi(r,n)}function Ki(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Qi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return ta.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new l;for(var i,o=-1,a=r.length;++oe?[0/0,0/0]:[e>0?a[e-1]:n[0],et?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return to(n,t,e)},u()}function eo(n,t){function e(e){return e>=e?t[ta.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return eo(n,t)},e}function ro(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Xi(n,t)},t.tickFormat=function(t,e){return $i(n,t,e)},t.copy=function(){return ro(n)},t}function uo(){return 0}function io(n){return n.innerRadius}function oo(n){return n.outerRadius}function ao(n){return n.startAngle}function co(n){return n.endAngle}function lo(n){return n&&n.padAngle}function so(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function fo(n,t,e,r,u){var i=n[0]-t[0],o=n[1]-t[1],a=(u?r:-r)/Math.sqrt(i*i+o*o),c=a*o,l=-a*i,s=n[0]+c,f=n[1]+l,h=t[0]+c,g=t[1]+l,p=(s+h)/2,v=(f+g)/2,d=h-s,m=g-f,y=d*d+m*m,M=e-r,x=s*g-h*f,b=(0>m?-1:1)*Math.sqrt(M*M*y-x*x),_=(x*m-d*b)/y,w=(-x*d-m*b)/y,S=(x*m+d*b)/y,k=(-x*d+m*b)/y,E=_-p,A=w-v,N=S-p,C=k-v;return E*E+A*A>N*N+C*C&&(_=S,w=k),[[_-c,w-l],[_*e/M,w*e/M]]}function ho(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=Et(e),p=Et(r);++f1&&u.push("H",r[0]),u.join("")}function mo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function To(n){return n.length<3?go(n):n[0]+_o(n,Lo(n))}function Ro(n){for(var t,e,r,u=-1,i=n.length;++ur)return s();var u=i[i.active];u&&(--i.count,delete i[i.active],u.event&&u.event.interrupt.call(n,n.__data__,u.index)),i.active=r,o.event&&o.event.start.call(n,n.__data__,t),o.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&v.push(r)}),h=o.ease,f=o.duration,ta.timer(function(){return p.c=l(e||1)?Ne:l,1},0,a)}function l(e){if(i.active!==r)return 1;for(var u=e/f,a=h(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,n.__data__,t),s()):void 0}function s(){return--i.count?delete i[r]:delete n[e],1}var f,h,g=o.delay,p=ec,v=[];return p.t=g+a,u>=g?c(u-g):void(p.c=c)},0,a)}}function Bo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Jo(n){return n.toISOString()}function Go(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=ta.bisect(Vl,u);return i==Vl.length?[t.year,Vi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Vl[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=Ko(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ko(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Pi(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Ko(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Go(n.copy(),t,e)},Yi(r,n)}function Ko(n){return new Date(n)}function Qo(n){return JSON.parse(n.responseText)}function na(n){var t=ua.createRange();return t.selectNode(ua.body),t.createContextualFragment(n.responseText)}var ta={version:"3.5.6"},ea=[].slice,ra=function(n){return ea.call(n)},ua=this.document;if(ua)try{ra(ua.documentElement.childNodes)[0].nodeType}catch(ia){ra=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),ua)try{ua.createElement("DIV").style.setProperty("opacity",0,"")}catch(oa){var aa=this.Element.prototype,ca=aa.setAttribute,la=aa.setAttributeNS,sa=this.CSSStyleDeclaration.prototype,fa=sa.setProperty;aa.setAttribute=function(n,t){ca.call(this,n,t+"")},aa.setAttributeNS=function(n,t,e){la.call(this,n,t,e+"")},sa.setProperty=function(n,t,e){fa.call(this,n,t+"",e)}}ta.ascending=e,ta.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},ta.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=r){e=r;break}for(;++ur&&(e=r)}else{for(;++u=r){e=r;break}for(;++ur&&(e=r)}return e},ta.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=r){e=r;break}for(;++ue&&(e=r)}else{for(;++u=r){e=r;break}for(;++ue&&(e=r)}return e},ta.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i=r){e=u=r;break}for(;++ir&&(e=r),r>u&&(u=r))}else{for(;++i=r){e=u=r;break}for(;++ir&&(e=r),r>u&&(u=r))}return[e,u]},ta.sum=function(n,t){var e,r=0,i=n.length,o=-1;if(1===arguments.length)for(;++o1?c/(s-1):void 0},ta.deviation=function(){var n=ta.variance.apply(this,arguments);return n?Math.sqrt(n):n};var ha=i(e);ta.bisectLeft=ha.left,ta.bisect=ta.bisectRight=ha.right,ta.bisector=function(n){return i(1===n.length?function(t,r){return e(n(t),r)}:n)},ta.shuffle=function(n,t,e){(i=arguments.length)<3&&(e=n.length,2>i&&(t=0));for(var r,u,i=e-t;i;)u=Math.random()*i--|0,r=n[i+t],n[i+t]=n[u+t],n[u+t]=r;return n},ta.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ta.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},ta.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=ta.min(arguments,o),e=new Array(t);++n=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ga=Math.abs;ta.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,u=[],i=a(ga(e)),o=-1;if(n*=i,t*=i,e*=i,0>e)for(;(r=n+e*++o)>t;)u.push(r/i);else for(;(r=n+e*++o)=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var c,s,f,h,g=-1,p=o.length,v=i[a++],d=new l;++g=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(ta.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},ta.set=function(n){var t=new m;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},c(m,{has:h,add:function(n){return this._[s(n+="")]=!0,n},remove:g,values:p,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t))}}),ta.behavior={},ta.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ta.event=null,ta.requote=function(n){return n.replace(ma,"\\$&")};var ma=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ya={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},Ma=function(n,t){return t.querySelector(n)},xa=function(n,t){return t.querySelectorAll(n)},ba=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(ba=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(Ma=function(n,t){return Sizzle(n,t)[0]||null},xa=Sizzle,ba=Sizzle.matchesSelector),ta.selection=function(){return ta.select(ua.documentElement)};var _a=ta.selection.prototype=[];_a.select=function(n){var t,e,r,u,i=[];n=N(n);for(var o=-1,a=this.length;++o=0&&(e=n.slice(0,t),n=n.slice(t+1)),wa.hasOwnProperty(e)?{space:wa[e],local:n}:n}},_a.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ta.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_a.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,u=-1;if(t=e.classList){for(;++uu){if("string"!=typeof n){2>u&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>u){var i=this.node();return t(i).getComputedStyle(i,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},_a.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},_a.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},_a.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},_a.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},_a.insert=function(n,t){return n=j(n),t=N(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},_a.remove=function(){return this.each(F)},_a.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new l,y=new Array(o);for(r=-1;++rr;++r)p[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,a.push(p),c.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++ii;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return A(u)},_a.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},_a.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},_a.size=function(){var n=0;return Y(this,function(){++n}),n};var Sa=[];ta.selection.enter=Z,ta.selection.enter.prototype=Sa,Sa.append=_a.append,Sa.empty=_a.empty,Sa.node=_a.node,Sa.call=_a.call,Sa.size=_a.size,Sa.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var ka=ta.map({mouseenter:"mouseover",mouseleave:"mouseout"});ua&&ka.forEach(function(n){"on"+n in ua&&ka.remove(n)});var Ea,Aa=0;ta.mouse=function(n){return J(n,k())};var Na=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ta.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return J(n,r)},ta.behavior.drag=function(){function n(){this.on("mousedown.drag",i).on("touchstart.drag",o)}function e(n,t,e,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],p|=n|e,M=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&ta.event.target===f),g({type:"dragend"}))}var l,s=this,f=ta.event.target,h=s.parentNode,g=r.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=ta.select(e(f)).on(i+d,a).on(o+d,c),y=W(f),M=t(h,v);u?(l=u.apply(s,arguments),l=[l.x-M[0],l.y-M[1]]):l=[0,0],g({type:"dragstart"})}}var r=E(n,"drag","dragstart","dragend"),u=null,i=e(b,ta.mouse,t,"mousemove","mouseup"),o=e(G,ta.touch,y,"touchmove","touchend");return n.origin=function(t){return arguments.length?(u=t,n):u},ta.rebind(n,r,"on")},ta.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?ra(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Ca=1e-6,za=Ca*Ca,qa=Math.PI,La=2*qa,Ta=La-Ca,Ra=qa/2,Da=qa/180,Pa=180/qa,Ua=Math.SQRT2,ja=2,Fa=4;ta.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=rt(v),o=i/(ja*h)*(e*ut(Ua*t+v)-et(v));return[r+o*l,u+o*s,i*e/rt(Ua*t+v)]}return[r+n*l,u+n*s,i*Math.exp(Ua*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Fa*f)/(2*i*ja*h),p=(c*c-i*i-Fa*f)/(2*c*ja*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Ua;return e.duration=1e3*y,e},ta.behavior.zoom=function(){function n(n){n.on(q,f).on(Oa+".zoom",g).on("dblclick.zoom",p).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function u(n){k.k=Math.max(N[0],Math.min(N[1],n))}function i(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},u(Math.pow(2,o)),i(d=e,r),t=ta.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function c(n){z++||n({type:"zoomstart"})}function l(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function s(n){--z||(n({type:"zoomend"}),d=null)}function f(){function n(){f=1,i(ta.mouse(u),g),l(a)}function r(){h.on(L,null).on(T,null),p(f&&ta.event.target===o),s(a)}var u=this,o=ta.event.target,a=D.of(u,arguments),f=0,h=ta.select(t(u)).on(L,n).on(T,r),g=e(ta.mouse(u)),p=W(u);Dl.call(u),c(a)}function h(){function n(){var n=ta.touches(p);return g=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ta.event.target;ta.select(t).on(x,r).on(b,a),_.push(t);for(var e=ta.event.changedTouches,u=0,i=e.length;i>u;++u)d[e[u].identifier]=null;var c=n(),l=Date.now();if(1===c.length){if(500>l-M){var s=c[0];o(p,s,d[s.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=l}else if(c.length>1){var s=c[0],f=c[1],h=s[0]-f[0],g=s[1]-f[1];m=h*h+g*g}}function r(){var n,t,e,r,o=ta.touches(p);Dl.call(p);for(var a=0,c=o.length;c>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=m&&Math.sqrt(s/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],u(f*g)}M=null,i(n,t),l(v)}function a(){if(ta.event.touches.length){for(var t=ta.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}ta.selectAll(_).on(y,null),w.on(q,f).on(R,h),E(),s(v)}var g,p=this,v=D.of(p,arguments),d={},m=0,y=".zoom-"+ta.event.changedTouches[0].identifier,x="touchmove"+y,b="touchend"+y,_=[],w=ta.select(p),E=W(p);t(),c(v),w.on(q,null).on(R,t)}function g(){var n=D.of(this,arguments);y?clearTimeout(y):(Dl.call(this),v=e(d=m||ta.mouse(this)),c(n)),y=setTimeout(function(){y=null,s(n)},50),S(),u(Math.pow(2,.002*Ha())*k.k),i(d,v),l(n)}function p(){var n=ta.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ta.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,m,y,M,x,b,_,w,k={x:0,y:0,k:1},A=[960,500],N=Ia,C=250,z=0,q="mousedown.zoom",L="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=E(n,"zoomstart","zoom","zoomend");return Oa||(Oa="onwheel"in ua?(Ha=function(){return-ta.event.deltaY*(ta.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ua?(Ha=function(){return ta.event.wheelDelta},"mousewheel"):(Ha=function(){return-ta.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Tl?ta.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},c(n)}).tween("zoom:zoom",function(){var e=A[0],r=A[1],u=d?d[0]:e/2,i=d?d[1]:r/2,o=ta.interpolateZoom([(u-k.x)/k.k,(i-k.y)/k.k,e/k.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:u-r[0]*a,y:i-r[1]*a,k:a},l(n)}}).each("interrupt.zoom",function(){s(n)}).each("end.zoom",function(){s(n)}):(this.__chart__=k,c(n),l(n),s(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:+t},a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(N=null==t?Ia:[+t[0],+t[1]],n):N},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(A=t&&[+t[0],+t[1]],n):A},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ta.rebind(n,D,"on")};var Ha,Oa,Ia=[0,1/0];ta.color=ot,ot.prototype.toString=function(){return this.rgb()+""},ta.hsl=at;var Ya=at.prototype=new ot;Ya.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,this.l/n)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,n*this.l)},Ya.rgb=function(){return ct(this.h,this.s,this.l)},ta.hcl=lt;var Za=lt.prototype=new ot;Za.brighter=function(n){return new lt(this.h,this.c,Math.min(100,this.l+Va*(arguments.length?n:1)))},Za.darker=function(n){return new lt(this.h,this.c,Math.max(0,this.l-Va*(arguments.length?n:1)))},Za.rgb=function(){return st(this.h,this.c,this.l).rgb()},ta.lab=ft;var Va=18,Xa=.95047,$a=1,Ba=1.08883,Wa=ft.prototype=new ot;Wa.brighter=function(n){return new ft(Math.min(100,this.l+Va*(arguments.length?n:1)),this.a,this.b)},Wa.darker=function(n){return new ft(Math.max(0,this.l-Va*(arguments.length?n:1)),this.a,this.b)},Wa.rgb=function(){return ht(this.l,this.a,this.b)},ta.rgb=mt;var Ja=mt.prototype=new ot;Ja.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new mt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mt(u,u,u)},Ja.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mt(n*this.r,n*this.g,n*this.b)},Ja.hsl=function(){return _t(this.r,this.g,this.b)},Ja.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var Ga=ta.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ga.forEach(function(n,t){Ga.set(n,yt(t))}),ta.functor=Et,ta.xhr=At(y),ta.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Nt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new m,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},ta.csv=ta.dsv(",","text/csv"),ta.tsv=ta.dsv(" ","text/tab-separated-values");var Ka,Qa,nc,tc,ec,rc=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ta.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Qa?Qa.n=i:Ka=i,Qa=i,nc||(tc=clearTimeout(tc),nc=1,rc(qt))},ta.timer.flush=function(){Lt(),Tt()},ta.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var uc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);ta.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=ta.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),uc[8+e/3]};var ic=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,oc=ta.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ta.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),ac=ta.time={},cc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){lc.setUTCDate.apply(this._,arguments)},setDay:function(){lc.setUTCDay.apply(this._,arguments)},setFullYear:function(){lc.setUTCFullYear.apply(this._,arguments)},setHours:function(){lc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){lc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){lc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){lc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){lc.setUTCSeconds.apply(this._,arguments)},setTime:function(){lc.setTime.apply(this._,arguments)}};var lc=Date.prototype;ac.year=Ft(function(n){return n=ac.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ac.years=ac.year.range,ac.years.utc=ac.year.utc.range,ac.day=Ft(function(n){var t=new cc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ac.days=ac.day.range,ac.days.utc=ac.day.utc.range,ac.dayOfYear=function(n){var t=ac.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ac[n]=Ft(function(n){return(n=ac.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ac[n+"s"]=e.range,ac[n+"s"].utc=e.utc.range,ac[n+"OfYear"]=function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)}}),ac.week=ac.sunday,ac.weeks=ac.sunday.range,ac.weeks.utc=ac.sunday.utc.range,ac.weekOfYear=ac.sundayOfYear;var sc={"-":"",_:" ",0:"0"},fc=/^\s*\d+/,hc=/^%/;ta.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var gc=ta.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ta.format=gc.numberFormat,ta.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,pc),le(pc.s,this.s,this),this.s?this.t+=pc.t:this.s=pc.t -},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var pc=new ce;ta.geo.stream=function(n,t){n&&vc.hasOwnProperty(n.type)?vc[n.type](n,t):se(n,t)};var vc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++rn?4*qa+n:n,Mc.lineStart=Mc.lineEnd=Mc.point=b}};ta.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*Da,e*Da]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);Me(o),o=xe(o);var c=t-p,l=c>0?1:-1,v=o[0]*Pa*l,d=ga(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Pa;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Pa;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ga(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Mc.point(n,e),t(n,e)}function i(){Mc.lineStart()}function o(){u(v,d),Mc.lineEnd(),ga(y)>Ca&&(s=-(h=180)),x[0]=s,x[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nyc?(s=-(h=180),f=-(g=90)):y>Ca?g=90:-Ca>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],ta.geo.stream(n,b);var t=M.length;if(t){M.sort(c);for(var e,r=1,u=M[0],i=[u];t>r;++r)e=M[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return M=x=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),ta.geo.centroid=function(n){xc=bc=_c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,qc);var t=Nc,e=Cc,r=zc,u=t*t+e*e+r*r;return za>u&&(t=kc,e=Ec,r=Ac,Ca>bc&&(t=_c,e=wc,r=Sc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Pa,tt(r/Math.sqrt(u))*Pa]};var xc,bc,_c,wc,Sc,kc,Ec,Ac,Nc,Cc,zc,qc={sphere:b,point:_e,lineStart:Se,lineEnd:ke,polygonStart:function(){qc.lineStart=Ee},polygonEnd:function(){qc.lineStart=Se}},Lc=Le(Ne,Pe,je,[-qa,-qa/2]),Tc=1e9;ta.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ie(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ta.geo.conicEqualArea=function(){return Ye(Ze)}).raw=Ze,ta.geo.albers=function(){return ta.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ta.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=ta.geo.albers(),o=ta.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ta.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Ca,f+.12*l+Ca],[s-.214*l-Ca,f+.234*l-Ca]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Ca,f+.166*l+Ca],[s-.115*l-Ca,f+.234*l-Ca]]).stream(c).point,n},n.scale(1070)};var Rc,Dc,Pc,Uc,jc,Fc,Hc={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Dc=0,Hc.lineStart=Ve},polygonEnd:function(){Hc.lineStart=Hc.lineEnd=Hc.point=b,Rc+=ga(Dc/2)}},Oc={point:Xe,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Ic={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){Ic.lineStart=Ke},polygonEnd:function(){Ic.point=We,Ic.lineStart=Je,Ic.lineEnd=Ge}};ta.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),ta.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Rc=0,ta.geo.stream(n,u(Hc)),Rc},n.centroid=function(n){return _c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,u(Ic)),zc?[Nc/zc,Cc/zc]:Ac?[kc/Ac,Ec/Ac]:Sc?[_c/Sc,wc/Sc]:[0/0,0/0]},n.bounds=function(n){return jc=Fc=-(Pc=Uc=1/0),ta.geo.stream(n,u(Oc)),[[Pc,Uc],[jc,Fc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):y,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(ta.geo.albersUsa()).context(null)},ta.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ta.geo.projection=ur,ta.geo.projectionMutator=ir,(ta.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,ta.geo.rotation=function(n){function t(t){return t=n(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t}return n=lr(n[0]%360*Da,n[1]*Da,n.length>2?n[2]*Da:0),t.invert=function(t){return t=n.invert(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t},t},cr.invert=ar,ta.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*Da,-n[1]*Da,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Pa,n[1]*=Pa}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*Da,u*Da),n):t},n.precision=function(r){return arguments.length?(e=gr(t*Da,(u=+r)*Da),n):u},n.angle(90)},ta.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Da,u=n[1]*Da,i=t[1]*Da,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},ta.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ta.range(Math.ceil(i/d)*d,u,d).map(h).concat(ta.range(Math.ceil(l/m)*m,c,m).map(g)).concat(ta.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ga(n%d)>Ca}).map(s)).concat(ta.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ga(n%m)>Ca}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Ca],[180,90-Ca]]).minorExtent([[-180,-80-Ca],[180,80+Ca]])},ta.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return ta.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},ta.geo.interpolate=function(n,t){return Mr(n[0]*Da,n[1]*Da,t[0]*Da,t[1]*Da)},ta.geo.length=function(n){return Yc=0,ta.geo.stream(n,Zc),Yc};var Yc,Zc={sphere:b,point:b,lineStart:xr,lineEnd:b,polygonStart:b,polygonEnd:b},Vc=br(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ta.geo.azimuthalEqualArea=function(){return ur(Vc)}).raw=Vc;var Xc=br(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},y);(ta.geo.azimuthalEquidistant=function(){return ur(Xc)}).raw=Xc,(ta.geo.conicConformal=function(){return Ye(_r)}).raw=_r,(ta.geo.conicEquidistant=function(){return Ye(wr)}).raw=wr;var $c=br(function(n){return 1/n},Math.atan);(ta.geo.gnomonic=function(){return ur($c)}).raw=$c,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ra]},(ta.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Bc=br(function(){return 1},Math.asin);(ta.geo.orthographic=function(){return ur(Bc)}).raw=Bc;var Wc=br(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ta.geo.stereographic=function(){return ur(Wc)}).raw=Wc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ra]},(ta.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,ta.geom={},ta.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=Et(e),i=Et(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Cr(a),s=Cr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ca)*Ca,y:Math.round(o(n,t)/Ca)*Ca,i:t}})}var r=Ar,u=Nr,i=r,o=u,a=ul;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Yr),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c=l,h=r>=s,g=h<<1|f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,M=Et(a),x=Et(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.xm&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);v>b&&(v=b),d>_&&(d=_),b>m&&(m=b),_>y&&(y=_),f.push(b),h.push(_)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+M(n,++g),+x(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},k.find=function(n){return hu(k,n[0],n[1],v,d,m,y)},g=-1,null==t){for(;++g=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=cl.get(e)||al,r=ll.get(r)||y,Mu(r(e.apply(null,ea.call(arguments,1))))},ta.interpolateHcl=Lu,ta.interpolateHsl=Tu,ta.interpolateLab=Ru,ta.interpolateRound=Du,ta.transform=function(n){var t=ua.createElementNS(ta.ns.prefix.svg,"g");return(ta.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Pu(e?e.matrix:sl)})(n)},Pu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var sl={a:1,b:0,c:0,d:1,e:0,f:0};ta.interpolateTransform=Hu,ta.layout={},ta.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=ta.event.x,n.py=ta.event.y,a.resume()}var e,r,u,i,o,a={},c=ta.dispatch("start","tick","end"),l=[1,1],s=.9,f=fl,h=hl,g=-30,p=gl,v=.1,d=.64,m=[],M=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,y,x,b=m.length,_=M.length;for(e=0;_>e;++e)a=M[e],f=a.source,h=a.target,y=h.x-f.x,x=h.y-f.y,(p=y*y+x*x)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,y*=p,x*=p,h.x-=y*(d=f.weight/(h.weight+f.weight)),h.y-=x*d,f.x+=y*(d=1-d),f.y+=x*d);if((d=r*v)&&(y=l[0]/2,x=l[1]/2,e=-1,d))for(;++e0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),ta.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=M[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++at;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=M[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,M[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,M[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=ta.behavior.drag().origin(y).on("dragstart.force",Xu).on("drag.force",t).on("dragend.force",$u)),arguments.length?void this.on("mouseover.force",Bu).on("mouseout.force",Wu).call(e):e},ta.rebind(a,c,"on")};var fl=20,hl=1,gl=1/0;ta.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Qu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ei,e=ni,r=ti;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ku(t,function(n){n.children&&(n.value=0)}),Qu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ta.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++lf?-1:1),p=(f-c*g)/ta.sum(l),v=ta.range(c),d=[];return null!=e&&v.sort(e===pl?function(n,t){return l[t]-l[n]}:function(n,t){return e(o[n],o[t])}),v.forEach(function(n){d[n]={data:o[n],value:a=l[n],startAngle:s,endAngle:s+=a*p+g,padAngle:h}}),d}var t=Number,e=pl,r=0,u=La,i=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n.padAngle=function(t){return arguments.length?(i=t,n):i},n};var pl={};ta.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=ta.permute(l,f),s=ta.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=y,e=ai,r=ci,u=oi,i=ui,o=ii;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:vl.get(t)||ai,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:dl.get(t)||ci,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var vl=ta.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(li),i=n.map(si),o=ta.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return ta.range(n.length).reverse()},"default":ai}),dl=ta.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ci});ta.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i0)for(i=-1;++i=s[0]&&a<=s[1]&&(o=c[ta.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=pi,u=hi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=Et(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return gi(n,t)}:Et(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ta.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Qu(a,function(n){n.r=+s(n.value)}),Qu(a,Mi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Qu(a,function(n){n.r+=f}),Qu(a,Mi),Qu(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=ta.layout.hierarchy().sort(vi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Gu(n,e)},ta.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Qu(h,e),h.parent.m=-h.z,Ku(h,r),l)Ku(f,i);else{var g=f,p=f,v=f;Ku(f,function(n){n.xp.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Ku(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ni(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=Ei(o),u=ki(u),o&&u;)c=ki(c),i=Ei(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ai(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!Ei(i)&&(i.t=o,i.m+=f-s),u&&!ki(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=ta.layout.hierarchy().sort(null).value(null),a=Si,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Gu(n,o)},ta.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Qu(c,function(n){var t=n.children;t&&t.length?(n.x=qi(t),n.y=zi(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Qu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=ta.layout.hierarchy().sort(null).value(null),e=Si,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Gu(n,t)},ta.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++ut?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++oe&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++ie.dx)&&(s=e.dx);++ie&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=ta.random.normal.apply(ta,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ta.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ta.scale={};var ml={floor:y,ceil:y};ta.scale.linear=function(){return Ii([0,1],[0,1],mu,!1)};var yl={s:1,g:1,p:1,r:1,e:1};ta.scale.log=function(){return Ji(ta.scale.linear().domain([0,1]),10,!0,[1,10])};var Ml=ta.format(".0e"),xl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ta.scale.pow=function(){return Gi(ta.scale.linear(),1,[0,1])},ta.scale.sqrt=function(){return ta.scale.pow().exponent(.5)},ta.scale.ordinal=function(){return Qi([],{t:"range",a:[[]]})},ta.scale.category10=function(){return ta.scale.ordinal().range(bl)},ta.scale.category20=function(){return ta.scale.ordinal().range(_l)},ta.scale.category20b=function(){return ta.scale.ordinal().range(wl)},ta.scale.category20c=function(){return ta.scale.ordinal().range(Sl)};var bl=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(Mt),_l=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(Mt),wl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(Mt),Sl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(Mt);ta.scale.quantile=function(){return no([],[])},ta.scale.quantize=function(){return to(0,1,[0,1])},ta.scale.threshold=function(){return eo([.5],[0,1])},ta.scale.identity=function(){return ro([0,1])},ta.svg={},ta.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),s=o.apply(this,arguments)-Ra,f=a.apply(this,arguments)-Ra,h=Math.abs(f-s),g=s>f?0:1;if(n>l&&(p=l,l=n,n=p),h>=Ta)return t(l,g)+(n?t(n,1-g):"")+"Z";var p,v,d,m,y,M,x,b,_,w,S,k,E=0,A=0,N=[];if((m=(+c.apply(this,arguments)||0)/2)&&(d=i===kl?Math.sqrt(n*n+l*l):+i.apply(this,arguments),g||(A*=-1),l&&(A=tt(d/l*Math.sin(m))),n&&(E=tt(d/n*Math.sin(m)))),l){y=l*Math.cos(s+A),M=l*Math.sin(s+A),x=l*Math.cos(f-A),b=l*Math.sin(f-A);var C=Math.abs(f-s-2*A)<=qa?0:1;if(A&&so(y,M,x,b)===g^C){var z=(s+f)/2;y=l*Math.cos(z),M=l*Math.sin(z),x=b=null}}else y=M=0;if(n){_=n*Math.cos(f-E),w=n*Math.sin(f-E),S=n*Math.cos(s+E),k=n*Math.sin(s+E);var q=Math.abs(s-f+2*E)<=qa?0:1;if(E&&so(_,w,S,k)===1-g^q){var L=(s+f)/2;_=n*Math.cos(L),w=n*Math.sin(L),S=k=null}}else _=w=0;if((p=Math.min(Math.abs(l-n)/2,+u.apply(this,arguments)))>.001){v=l>n^g?0:1;var T=null==S?[_,w]:null==x?[y,M]:Lr([y,M],[S,k],[x,b],[_,w]),R=y-T[0],D=M-T[1],P=x-T[0],U=b-T[1],j=1/Math.sin(Math.acos((R*P+D*U)/(Math.sqrt(R*R+D*D)*Math.sqrt(P*P+U*U)))/2),F=Math.sqrt(T[0]*T[0]+T[1]*T[1]);if(null!=x){var H=Math.min(p,(l-F)/(j+1)),O=fo(null==S?[_,w]:[S,k],[y,M],l,H,g),I=fo([x,b],[_,w],l,H,g);p===H?N.push("M",O[0],"A",H,",",H," 0 0,",v," ",O[1],"A",l,",",l," 0 ",1-g^so(O[1][0],O[1][1],I[1][0],I[1][1]),",",g," ",I[1],"A",H,",",H," 0 0,",v," ",I[0]):N.push("M",O[0],"A",H,",",H," 0 1,",v," ",I[0])}else N.push("M",y,",",M);if(null!=S){var Y=Math.min(p,(n-F)/(j-1)),Z=fo([y,M],[S,k],n,-Y,g),V=fo([_,w],null==x?[y,M]:[x,b],n,-Y,g);p===Y?N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",V[1],"A",n,",",n," 0 ",g^so(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-g," ",Z[1],"A",Y,",",Y," 0 0,",v," ",Z[0]):N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",Z[0])}else N.push("L",_,",",w)}else N.push("M",y,",",M),null!=x&&N.push("A",l,",",l," 0 ",C,",",g," ",x,",",b),N.push("L",_,",",w),null!=S&&N.push("A",n,",",n," 0 ",q,",",1-g," ",S,",",k);return N.push("Z"),N.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=io,r=oo,u=uo,i=kl,o=ao,a=co,c=lo;return n.innerRadius=function(t){return arguments.length?(e=Et(t),n):e},n.outerRadius=function(t){return arguments.length?(r=Et(t),n):r},n.cornerRadius=function(t){return arguments.length?(u=Et(t),n):u},n.padRadius=function(t){return arguments.length?(i=t==kl?kl:Et(t),n):i},n.startAngle=function(t){return arguments.length?(o=Et(t),n):o},n.endAngle=function(t){return arguments.length?(a=Et(t),n):a},n.padAngle=function(t){return arguments.length?(c=Et(t),n):c},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Ra;return[Math.cos(t)*n,Math.sin(t)*n]},n};var kl="auto";ta.svg.line=function(){return ho(y)};var El=ta.map({linear:go,"linear-closed":po,step:vo,"step-before":mo,"step-after":yo,basis:So,"basis-open":ko,"basis-closed":Eo,bundle:Ao,cardinal:bo,"cardinal-open":Mo,"cardinal-closed":xo,monotone:To});El.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Al=[0,2/3,1/3,0],Nl=[0,1/3,2/3,0],Cl=[0,1/6,2/3,1/6];ta.svg.line.radial=function(){var n=ho(Ro);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},mo.reverse=yo,yo.reverse=mo,ta.svg.area=function(){return Do(y)},ta.svg.area.radial=function(){var n=Do(Ro);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ta.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)-Ra,s=l.call(n,u,r)-Ra;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>qa)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Po,c=ao,l=co;return n.radius=function(t){return arguments.length?(a=Et(t),n):a},n.source=function(t){return arguments.length?(i=Et(t),n):i},n.target=function(t){return arguments.length?(o=Et(t),n):o},n.startAngle=function(t){return arguments.length?(c=Et(t),n):c},n.endAngle=function(t){return arguments.length?(l=Et(t),n):l},n},ta.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=Uo;return n.source=function(e){return arguments.length?(t=Et(e),n):t},n.target=function(t){return arguments.length?(e=Et(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ta.svg.diagonal.radial=function(){var n=ta.svg.diagonal(),t=Uo,e=n.projection;return n.projection=function(n){return arguments.length?e(jo(t=n)):t},n},ta.svg.symbol=function(){function n(n,r){return(zl.get(t.call(this,n,r))||Oo)(e.call(this,n,r))}var t=Ho,e=Fo;return n.type=function(e){return arguments.length?(t=Et(e),n):t},n.size=function(t){return arguments.length?(e=Et(t),n):e},n};var zl=ta.map({circle:Oo,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ta.svg.symbolTypes=zl.keys();var ql=Math.sqrt(3),Ll=Math.tan(30*Da);_a.transition=function(n){for(var t,e,r=Tl||++Ul,u=Xo(n),i=[],o=Rl||{time:Date.now(),ease:Su,delay:0,duration:250},a=-1,c=this.length;++ai;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Yo(u,this.namespace,this.id)},Pl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(u){u[r][e].tween.set(n,t)})},Pl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Hu:mu,a=ta.ns.qualify(n);return Zo(this,"attr."+n,t,a.local?i:u)},Pl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=ta.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Pl.style=function(n,e,r){function u(){this.style.removeProperty(n)}function i(e){return null==e?u:(e+="",function(){var u,i=t(this).getComputedStyle(this,null).getPropertyValue(n);return i!==e&&(u=mu(i,e),function(t){this.style.setProperty(n,u(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Zo(this,"style."+n,e,i)},Pl.styleTween=function(n,e,r){function u(u,i){var o=e.call(this,u,i,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,u)},Pl.text=function(n){return Zo(this,"text",n,Vo)},Pl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Pl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ta.ease.apply(ta,arguments)),Y(this,function(r){r[e][t].ease=n}))},Pl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,u,i){r[e][t].delay=+n.call(r,r.__data__,u,i)}:(n=+n,function(r){r[e][t].delay=n}))},Pl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,u,i){r[e][t].duration=Math.max(1,n.call(r,r.__data__,u,i))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Pl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var u=Rl,i=Tl;try{Tl=e,Y(this,function(t,u,i){Rl=t[r][e],n.call(t,t.__data__,u,i)})}finally{Rl=u,Tl=i}}else Y(this,function(u){var i=u[r][e];(i.event||(i.event=ta.dispatch("start","end","interrupt"))).on(n,t)});return this},Pl.transition=function(){for(var n,t,e,r,u=this.id,i=++Ul,o=this.namespace,a=[],c=0,l=this.length;l>c;c++){a.push(n=[]);for(var t=this[c],s=0,f=t.length;f>s;s++)(e=t[s])&&(r=e[o][u],$o(e,s,o,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Yo(a,o,i)},ta.svg.axis=function(){function n(n){n.each(function(){var n,l=ta.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):y:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ca),d=ta.transition(p.exit()).style("opacity",Ca).remove(),m=ta.transition(p.order()).style("opacity",1),M=Math.max(u,0)+o,x=Ui(f),b=l.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ta.transition(b));v.append("line"),v.append("text");var w,S,k,E,A=v.select("line"),N=m.select("line"),C=p.select("text").text(g),z=v.select("text"),q=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Bo,w="x",k="y",S="x2",E="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Wo,w="y",k="x",S="y2",E="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),A.attr(E,L*u),z.attr(k,L*M),N.attr(S,0).attr(E,L*u),q.attr(w,0).attr(k,L*M),f.rangeBand){var T=f,R=T.rangeBand()/2;s=f=function(n){return T(n)+R}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=ta.scale.linear(),r=jl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Fl?t+"":jl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var jl="bottom",Fl={top:1,right:1,bottom:1,left:1};ta.svg.brush=function(){function n(t){t.each(function(){var t=ta.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,y);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Hl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var c,f=ta.transition(t),h=ta.transition(o);l&&(c=Ui(l),h.attr("x",c[0]).attr("width",c[1]-c[0]),r(f)),s&&(c=Ui(s),h.attr("y",c[0]).attr("height",c[1]-c[0]),u(f)),e(f)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+f[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",f[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function u(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function i(){function i(){32==ta.event.keyCode&&(C||(M=null,q[0]-=f[1],q[1]-=h[1],C=2),S())}function v(){32==ta.event.keyCode&&2==C&&(q[0]+=f[1],q[1]+=h[1],C=0,S())}function d(){var n=ta.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ta.event.altKey?(M||(M=[(f[0]+f[1])/2,(h[0]+h[1])/2]),q[0]=f[+(n[0]s?(u=r,r=s):u=s),v[0]!=r||v[1]!=u?(e?a=null:o=null,v[0]=r,v[1]=u,!0):void 0}function y(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ta.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ta.select(ta.event.target),w=c.of(b,arguments),k=ta.select(b),E=_.datum(),A=!/^(n|s)$/.test(E)&&l,N=!/^(e|w)$/.test(E)&&s,C=_.classed("extent"),z=W(b),q=ta.mouse(b),L=ta.select(t(b)).on("keydown.brush",i).on("keyup.brush",v);if(ta.event.changedTouches?L.on("touchmove.brush",d).on("touchend.brush",y):L.on("mousemove.brush",d).on("mouseup.brush",y),k.interrupt().selectAll("*").interrupt(),C)q[0]=f[0]-q[0],q[1]=h[0]-q[1];else if(E){var T=+/w$/.test(E),R=+/^n/.test(E);x=[f[1-T]-q[0],h[1-R]-q[1]],q[0]=f[T],q[1]=h[R]}else ta.event.altKey&&(M=q.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ta.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,c=E(n,"brushstart","brush","brushend"),l=null,s=null,f=[0,0],h=[0,0],g=!0,p=!0,v=Ol[0];return n.event=function(n){n.each(function(){var n=c.of(this,arguments),t={x:f,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Tl?ta.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,f=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=yu(f,t.x),r=yu(h,t.y);return o=a=null,function(u){f=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(l=t,v=Ol[!l<<1|!s],n):l},n.y=function(t){return arguments.length?(s=t,v=Ol[!l<<1|!s],n):s},n.clamp=function(t){return arguments.length?(l&&s?(g=!!t[0],p=!!t[1]):l?g=!!t:s&&(p=!!t),n):l&&s?[g,p]:l?g:s?p:null},n.extent=function(t){var e,r,u,i,c;return arguments.length?(l&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),o=[e,r],l.invert&&(e=l(e),r=l(r)),e>r&&(c=e,e=r,r=c),(e!=f[0]||r!=f[1])&&(f=[e,r])),s&&(u=t[0],i=t[1],l&&(u=u[1],i=i[1]),a=[u,i],s.invert&&(u=s(u),i=s(i)),u>i&&(c=u,u=i,i=c),(u!=h[0]||i!=h[1])&&(h=[u,i])),n):(l&&(o?(e=o[0],r=o[1]):(e=f[0],r=f[1],l.invert&&(e=l.invert(e),r=l.invert(r)),e>r&&(c=e,e=r,r=c))),s&&(a?(u=a[0],i=a[1]):(u=h[0],i=h[1],s.invert&&(u=s.invert(u),i=s.invert(i)),u>i&&(c=u,u=i,i=c))),l&&s?[[e,u],[r,i]]:l?[e,r]:s&&[u,i])},n.clear=function(){return n.empty()||(f=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!l&&f[0]==f[1]||!!s&&h[0]==h[1]},ta.rebind(n,c,"on")};var Hl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ol=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Il=ac.format=gc.timeFormat,Yl=Il.utc,Zl=Yl("%Y-%m-%dT%H:%M:%S.%LZ");Il.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Jo:Zl,Jo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Jo.toString=Zl.toString,ac.second=Ft(function(n){return new cc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ac.seconds=ac.second.range,ac.seconds.utc=ac.second.utc.range,ac.minute=Ft(function(n){return new cc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ac.minutes=ac.minute.range,ac.minutes.utc=ac.minute.utc.range,ac.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new cc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ac.hours=ac.hour.range,ac.hours.utc=ac.hour.utc.range,ac.month=Ft(function(n){return n=ac.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ac.months=ac.month.range,ac.months.utc=ac.month.utc.range;var Vl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Xl=[[ac.second,1],[ac.second,5],[ac.second,15],[ac.second,30],[ac.minute,1],[ac.minute,5],[ac.minute,15],[ac.minute,30],[ac.hour,1],[ac.hour,3],[ac.hour,6],[ac.hour,12],[ac.day,1],[ac.day,2],[ac.week,1],[ac.month,1],[ac.month,3],[ac.year,1]],$l=Il.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ne]]),Bl={range:function(n,t,e){return ta.range(Math.ceil(n/e)*e,+t,e).map(Ko)},floor:y,ceil:y};Xl.year=ac.year,ac.scale=function(){return Go(ta.scale.linear(),Xl,$l)};var Wl=Xl.map(function(n){return[n[0].utc,n[1]]}),Jl=Yl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ne]]);Wl.year=ac.year.utc,ac.scale.utc=function(){return Go(ta.scale.linear(),Wl,Jl)},ta.text=At(function(n){return n.responseText}),ta.json=function(n,t){return Nt(n,"application/json",Qo,t)},ta.html=function(n,t){return Nt(n,"text/html",na,t)},ta.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(ta):"object"==typeof module&&module.exports&&(module.exports=ta),this.d3=ta}(); \ No newline at end of file +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/ennstatus/static/js/d3/package.js b/ennstatus/static/js/d3/package.js deleted file mode 100644 --- a/ennstatus/static/js/d3/package.js +++ /dev/null @@ -1,13 +0,0 @@ -// Package metadata for Meteor.js. - -Package.describe({ - name: "d3js:d3", // http://atmospherejs.com/d3js/d3 - summary: "D3 (official): A JavaScript visualization library for HTML and SVG.", - version: "3.5.6", - git: "https://github.com/mbostock/d3.git" -}); - -Package.onUse(function(api) { - api.versionsFrom(["METEOR@1.0"]); - api.addFiles("d3.js", "client"); -}); diff --git a/ennstatus/static/js/topojson/.bower.json b/ennstatus/static/js/topojson/.bower.json --- a/ennstatus/static/js/topojson/.bower.json +++ b/ennstatus/static/js/topojson/.bower.json @@ -1,31 +1,18 @@ { "name": "topojson", - "version": "1.6.19", + "description": "An extension to GeoJSON that encodes topology.", "main": "topojson.js", - "scripts": [ - "topojson.js" - ], - "ignore": [ - ".DS_Store", - ".git", - "Makefile", - "bin", - "examples", - "index.js", - "lib", - "node_modules", - "package.json", - "test" - ], - "homepage": "https://github.com/mbostock/topojson", - "_release": "1.6.19", + "license": "BSD-3-Clause", + "ignore": [], + "homepage": "https://github.com/mbostock/topojson-bower", + "version": "1.6.27", + "_release": "1.6.27", "_resolution": { "type": "version", - "tag": "v1.6.19", - "commit": "7c29ad7652b2f00516b635313f8a54cfc8cd2625" + "tag": "v1.6.27", + "commit": "ad0ce034fa25393aaeeaffa94318a2c0c9eddb89" }, - "_source": "git://github.com/mbostock/topojson.git", + "_source": "https://github.com/mbostock/topojson-bower.git", "_target": "~1.6.19", - "_originalSource": "topojson", - "_direct": true + "_originalSource": "topojson" } \ No newline at end of file diff --git a/ennstatus/static/js/topojson/.gitignore b/ennstatus/static/js/topojson/.gitignore deleted file mode 100644 --- a/ennstatus/static/js/topojson/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -topojson.min.js -node_modules diff --git a/ennstatus/static/js/topojson/.npmignore b/ennstatus/static/js/topojson/.npmignore deleted file mode 100644 --- a/ennstatus/static/js/topojson/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -.DS_Store -node_modules diff --git a/ennstatus/static/js/topojson/LICENSE b/ennstatus/static/js/topojson/LICENSE --- a/ennstatus/static/js/topojson/LICENSE +++ b/ennstatus/static/js/topojson/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2012, Michael Bostock +Copyright (c) 2012-2016, Michael Bostock All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/ennstatus/static/js/topojson/bower.json b/ennstatus/static/js/topojson/bower.json --- a/ennstatus/static/js/topojson/bower.json +++ b/ennstatus/static/js/topojson/bower.json @@ -1,20 +1,7 @@ { "name": "topojson", - "version": "1.6.19", + "description": "An extension to GeoJSON that encodes topology.", "main": "topojson.js", - "scripts": [ - "topojson.js" - ], - "ignore": [ - ".DS_Store", - ".git", - "Makefile", - "bin", - "examples", - "index.js", - "lib", - "node_modules", - "package.json", - "test" - ] + "license": "BSD-3-Clause", + "ignore": [] } diff --git a/ennstatus/static/js/topojson/topojson.js b/ennstatus/static/js/topojson/topojson.js --- a/ennstatus/static/js/topojson/topojson.js +++ b/ennstatus/static/js/topojson/topojson.js @@ -1,534 +1,547 @@ -!function() { - var topojson = { - version: "1.6.19", - mesh: function(topology) { return object(topology, meshArcs.apply(this, arguments)); }, - meshArcs: meshArcs, - merge: function(topology) { return object(topology, mergeArcs.apply(this, arguments)); }, - mergeArcs: mergeArcs, - feature: featureOrCollection, - neighbors: neighbors, - presimplify: presimplify - }; +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.topojson = global.topojson || {}))); +}(this, (function (exports) { 'use strict'; + +function noop() {} - function stitchArcs(topology, arcs) { - var stitchedArcs = {}, - fragmentByStart = {}, - fragmentByEnd = {}, - fragments = [], - emptyIndex = -1; +function transformAbsolute(transform) { + if (!transform) return noop; + var x0, + y0, + kx = transform.scale[0], + ky = transform.scale[1], + dx = transform.translate[0], + dy = transform.translate[1]; + return function(point, i) { + if (!i) x0 = y0 = 0; + point[0] = (x0 += point[0]) * kx + dx; + point[1] = (y0 += point[1]) * ky + dy; + }; +} - // Stitch empty arcs first, since they may be subsumed by other arcs. - arcs.forEach(function(i, j) { - var arc = topology.arcs[i < 0 ? ~i : i], t; - if (arc.length < 3 && !arc[1][0] && !arc[1][1]) { - t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t; - } - }); - - arcs.forEach(function(i) { - var e = ends(i), - start = e[0], - end = e[1], - f, g; +function transformRelative(transform) { + if (!transform) return noop; + var x0, + y0, + kx = transform.scale[0], + ky = transform.scale[1], + dx = transform.translate[0], + dy = transform.translate[1]; + return function(point, i) { + if (!i) x0 = y0 = 0; + var x1 = Math.round((point[0] - dx) / kx), + y1 = Math.round((point[1] - dy) / ky); + point[0] = x1 - x0; + point[1] = y1 - y0; + x0 = x1; + y0 = y1; + }; +} - if (f = fragmentByEnd[start]) { - delete fragmentByEnd[f.end]; - f.push(i); - f.end = end; - if (g = fragmentByStart[end]) { - delete fragmentByStart[g.start]; - var fg = g === f ? f : f.concat(g); - fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg; - } else { - fragmentByStart[f.start] = fragmentByEnd[f.end] = f; - } - } else if (f = fragmentByStart[end]) { - delete fragmentByStart[f.start]; - f.unshift(i); - f.start = start; - if (g = fragmentByEnd[start]) { - delete fragmentByEnd[g.end]; - var gf = g === f ? f : g.concat(f); - fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf; - } else { - fragmentByStart[f.start] = fragmentByEnd[f.end] = f; - } - } else { - f = [i]; - fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f; - } - }); +function reverse(array, n) { + var t, j = array.length, i = j - n; + while (i < --j) t = array[i], array[i++] = array[j], array[j] = t; +} + +function bisect(a, x) { + var lo = 0, hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (a[mid] < x) lo = mid + 1; + else hi = mid; + } + return lo; +} + +function feature(topology, o) { + return o.type === "GeometryCollection" ? { + type: "FeatureCollection", + features: o.geometries.map(function(o) { return feature$1(topology, o); }) + } : feature$1(topology, o); +} - function ends(i) { - var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1; - if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) { p1[0] += dp[0], p1[1] += dp[1]; }); - else p1 = arc[arc.length - 1]; - return i < 0 ? [p1, p0] : [p0, p1]; - } +function feature$1(topology, o) { + var f = { + type: "Feature", + id: o.id, + properties: o.properties || {}, + geometry: object(topology, o) + }; + if (o.id == null) delete f.id; + return f; +} - function flush(fragmentByEnd, fragmentByStart) { - for (var k in fragmentByEnd) { - var f = fragmentByEnd[k]; - delete fragmentByStart[f.start]; - delete f.start; - delete f.end; - f.forEach(function(i) { stitchedArcs[i < 0 ? ~i : i] = 1; }); - fragments.push(f); - } +function object(topology, o) { + var absolute = transformAbsolute(topology.transform), + arcs = topology.arcs; + + function arc(i, points) { + if (points.length) points.pop(); + for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length, p; k < n; ++k) { + points.push(p = a[k].slice()); + absolute(p, k); } - - flush(fragmentByEnd, fragmentByStart); - flush(fragmentByStart, fragmentByEnd); - arcs.forEach(function(i) { if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]); }); - - return fragments; + if (i < 0) reverse(points, n); } - function meshArcs(topology, o, filter) { - var arcs = []; - - if (arguments.length > 1) { - var geomsByArc = [], - geom; - - function arc(i) { - var j = i < 0 ? ~i : i; - (geomsByArc[j] || (geomsByArc[j] = [])).push({i: i, g: geom}); - } - - function line(arcs) { - arcs.forEach(arc); - } - - function polygon(arcs) { - arcs.forEach(line); - } + function point(p) { + p = p.slice(); + absolute(p, 0); + return p; + } - function geometry(o) { - if (o.type === "GeometryCollection") o.geometries.forEach(geometry); - else if (o.type in geometryType) geom = o, geometryType[o.type](o.arcs); - } + function line(arcs) { + var points = []; + for (var i = 0, n = arcs.length; i < n; ++i) arc(arcs[i], points); + if (points.length < 2) points.push(points[0].slice()); + return points; + } - var geometryType = { - LineString: line, - MultiLineString: polygon, - Polygon: polygon, - MultiPolygon: function(arcs) { arcs.forEach(polygon); } - }; - - geometry(o); + function ring(arcs) { + var points = line(arcs); + while (points.length < 4) points.push(points[0].slice()); + return points; + } - geomsByArc.forEach(arguments.length < 3 - ? function(geoms) { arcs.push(geoms[0].i); } - : function(geoms) { if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i); }); - } else { - for (var i = 0, n = topology.arcs.length; i < n; ++i) arcs.push(i); - } - - return {type: "MultiLineString", arcs: stitchArcs(topology, arcs)}; + function polygon(arcs) { + return arcs.map(ring); } - function mergeArcs(topology, objects) { - var polygonsByArc = {}, - polygons = [], - components = []; - - objects.forEach(function(o) { - if (o.type === "Polygon") register(o.arcs); - else if (o.type === "MultiPolygon") o.arcs.forEach(register); - }); - - function register(polygon) { - polygon.forEach(function(ring) { - ring.forEach(function(arc) { - (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon); - }); - }); - polygons.push(polygon); - } - - function exterior(ring) { - return cartesianRingArea(object(topology, {type: "Polygon", arcs: [ring]}).coordinates[0]) > 0; // TODO allow spherical? - } - - polygons.forEach(function(polygon) { - if (!polygon._) { - var component = [], - neighbors = [polygon]; - polygon._ = 1; - components.push(component); - while (polygon = neighbors.pop()) { - component.push(polygon); - polygon.forEach(function(ring) { - ring.forEach(function(arc) { - polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon) { - if (!polygon._) { - polygon._ = 1; - neighbors.push(polygon); - } - }); - }); - }); - } - } - }); - - polygons.forEach(function(polygon) { - delete polygon._; - }); - - return { - type: "MultiPolygon", - arcs: components.map(function(polygons) { - var arcs = []; - - // Extract the exterior (unique) arcs. - polygons.forEach(function(polygon) { - polygon.forEach(function(ring) { - ring.forEach(function(arc) { - if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) { - arcs.push(arc); - } - }); - }); - }); - - // Stitch the arcs into one or more rings. - arcs = stitchArcs(topology, arcs); - - // If more than one ring is returned, - // at most one of these rings can be the exterior; - // this exterior ring has the same winding order - // as any exterior ring in the original polygons. - if ((n = arcs.length) > 1) { - var sgn = exterior(polygons[0][0]); - for (var i = 0, t; i < n; ++i) { - if (sgn === exterior(arcs[i])) { - t = arcs[0], arcs[0] = arcs[i], arcs[i] = t; - break; - } - } - } - - return arcs; - }) - }; - } - - function featureOrCollection(topology, o) { - return o.type === "GeometryCollection" ? { - type: "FeatureCollection", - features: o.geometries.map(function(o) { return feature(topology, o); }) - } : feature(topology, o); + function geometry(o) { + var t = o.type; + return t === "GeometryCollection" ? {type: t, geometries: o.geometries.map(geometry)} + : t in geometryType ? {type: t, coordinates: geometryType[t](o)} + : null; } - function feature(topology, o) { - var f = { - type: "Feature", - id: o.id, - properties: o.properties || {}, - geometry: object(topology, o) - }; - if (o.id == null) delete f.id; - return f; + var geometryType = { + Point: function(o) { return point(o.coordinates); }, + MultiPoint: function(o) { return o.coordinates.map(point); }, + LineString: function(o) { return line(o.arcs); }, + MultiLineString: function(o) { return o.arcs.map(line); }, + Polygon: function(o) { return polygon(o.arcs); }, + MultiPolygon: function(o) { return o.arcs.map(polygon); } + }; + + return geometry(o); +} + +function stitchArcs(topology, arcs) { + var stitchedArcs = {}, + fragmentByStart = {}, + fragmentByEnd = {}, + fragments = [], + emptyIndex = -1; + + // Stitch empty arcs first, since they may be subsumed by other arcs. + arcs.forEach(function(i, j) { + var arc = topology.arcs[i < 0 ? ~i : i], t; + if (arc.length < 3 && !arc[1][0] && !arc[1][1]) { + t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t; + } + }); + + arcs.forEach(function(i) { + var e = ends(i), + start = e[0], + end = e[1], + f, g; + + if (f = fragmentByEnd[start]) { + delete fragmentByEnd[f.end]; + f.push(i); + f.end = end; + if (g = fragmentByStart[end]) { + delete fragmentByStart[g.start]; + var fg = g === f ? f : f.concat(g); + fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg; + } else { + fragmentByStart[f.start] = fragmentByEnd[f.end] = f; + } + } else if (f = fragmentByStart[end]) { + delete fragmentByStart[f.start]; + f.unshift(i); + f.start = start; + if (g = fragmentByEnd[start]) { + delete fragmentByEnd[g.end]; + var gf = g === f ? f : g.concat(f); + fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf; + } else { + fragmentByStart[f.start] = fragmentByEnd[f.end] = f; + } + } else { + f = [i]; + fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f; + } + }); + + function ends(i) { + var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1; + if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) { p1[0] += dp[0], p1[1] += dp[1]; }); + else p1 = arc[arc.length - 1]; + return i < 0 ? [p1, p0] : [p0, p1]; } - function object(topology, o) { - var absolute = transformAbsolute(topology.transform), - arcs = topology.arcs; - - function arc(i, points) { - if (points.length) points.pop(); - for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length, p; k < n; ++k) { - points.push(p = a[k].slice()); - absolute(p, k); - } - if (i < 0) reverse(points, n); - } - - function point(p) { - p = p.slice(); - absolute(p, 0); - return p; - } - - function line(arcs) { - var points = []; - for (var i = 0, n = arcs.length; i < n; ++i) arc(arcs[i], points); - if (points.length < 2) points.push(points[0].slice()); - return points; + function flush(fragmentByEnd, fragmentByStart) { + for (var k in fragmentByEnd) { + var f = fragmentByEnd[k]; + delete fragmentByStart[f.start]; + delete f.start; + delete f.end; + f.forEach(function(i) { stitchedArcs[i < 0 ? ~i : i] = 1; }); + fragments.push(f); } - - function ring(arcs) { - var points = line(arcs); - while (points.length < 4) points.push(points[0].slice()); - return points; - } - - function polygon(arcs) { - return arcs.map(ring); - } - - function geometry(o) { - var t = o.type; - return t === "GeometryCollection" ? {type: t, geometries: o.geometries.map(geometry)} - : t in geometryType ? {type: t, coordinates: geometryType[t](o)} - : null; - } - - var geometryType = { - Point: function(o) { return point(o.coordinates); }, - MultiPoint: function(o) { return o.coordinates.map(point); }, - LineString: function(o) { return line(o.arcs); }, - MultiLineString: function(o) { return o.arcs.map(line); }, - Polygon: function(o) { return polygon(o.arcs); }, - MultiPolygon: function(o) { return o.arcs.map(polygon); } - }; - - return geometry(o); } - function reverse(array, n) { - var t, j = array.length, i = j - n; while (i < --j) t = array[i], array[i++] = array[j], array[j] = t; - } + flush(fragmentByEnd, fragmentByStart); + flush(fragmentByStart, fragmentByEnd); + arcs.forEach(function(i) { if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]); }); + + return fragments; +} - function bisect(a, x) { - var lo = 0, hi = a.length; - while (lo < hi) { - var mid = lo + hi >>> 1; - if (a[mid] < x) lo = mid + 1; - else hi = mid; - } - return lo; +function mesh(topology) { + return object(topology, meshArcs.apply(this, arguments)); +} + +function meshArcs(topology, o, filter) { + var arcs = []; + + function arc(i) { + var j = i < 0 ? ~i : i; + (geomsByArc[j] || (geomsByArc[j] = [])).push({i: i, g: geom}); } - function neighbors(objects) { - var indexesByArc = {}, // arc index -> array of object indexes - neighbors = objects.map(function() { return []; }); + function line(arcs) { + arcs.forEach(arc); + } + + function polygon(arcs) { + arcs.forEach(line); + } - function line(arcs, i) { - arcs.forEach(function(a) { - if (a < 0) a = ~a; - var o = indexesByArc[a]; - if (o) o.push(i); - else indexesByArc[a] = [i]; - }); - } + function geometry(o) { + if (o.type === "GeometryCollection") o.geometries.forEach(geometry); + else if (o.type in geometryType) geom = o, geometryType[o.type](o.arcs); + } - function polygon(arcs, i) { - arcs.forEach(function(arc) { line(arc, i); }); - } - - function geometry(o, i) { - if (o.type === "GeometryCollection") o.geometries.forEach(function(o) { geometry(o, i); }); - else if (o.type in geometryType) geometryType[o.type](o.arcs, i); - } + if (arguments.length > 1) { + var geomsByArc = [], + geom; var geometryType = { LineString: line, MultiLineString: polygon, Polygon: polygon, - MultiPolygon: function(arcs, i) { arcs.forEach(function(arc) { polygon(arc, i); }); } + MultiPolygon: function(arcs) { arcs.forEach(polygon); } }; - objects.forEach(geometry); + geometry(o); + + geomsByArc.forEach(arguments.length < 3 + ? function(geoms) { arcs.push(geoms[0].i); } + : function(geoms) { if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i); }); + } else { + for (var i = 0, n = topology.arcs.length; i < n; ++i) arcs.push(i); + } + + return {type: "MultiLineString", arcs: stitchArcs(topology, arcs)}; +} - for (var i in indexesByArc) { - for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) { - for (var k = j + 1; k < m; ++k) { - var ij = indexes[j], ik = indexes[k], n; - if ((n = neighbors[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik); - if ((n = neighbors[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij); - } - } - } +function cartesianTriangleArea(triangle) { + var a = triangle[0], b = triangle[1], c = triangle[2]; + return Math.abs((a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1])); +} - return neighbors; +function ring(ring) { + var i = -1, + n = ring.length, + a, + b = ring[n - 1], + area = 0; + + while (++i < n) { + a = b; + b = ring[i]; + area += a[0] * b[1] - a[1] * b[0]; } - function presimplify(topology, triangleArea) { - var absolute = transformAbsolute(topology.transform), - relative = transformRelative(topology.transform), - heap = minAreaHeap(); + return area / 2; +} - if (!triangleArea) triangleArea = cartesianTriangleArea; +function merge(topology) { + return object(topology, mergeArcs.apply(this, arguments)); +} - topology.arcs.forEach(function(arc) { - var triangles = [], - maxArea = 0, - triangle; +function mergeArcs(topology, objects) { + var polygonsByArc = {}, + polygons = [], + components = []; - // To store each point’s effective area, we create a new array rather than - // extending the passed-in point to workaround a Chrome/V8 bug (getting - // stuck in smi mode). For midpoints, the initial effective area of - // Infinity will be computed in the next step. - for (var i = 0, n = arc.length, p; i < n; ++i) { - p = arc[i]; - absolute(arc[i] = [p[0], p[1], Infinity], i); - } + objects.forEach(function(o) { + if (o.type === "Polygon") register(o.arcs); + else if (o.type === "MultiPolygon") o.arcs.forEach(register); + }); - for (var i = 1, n = arc.length - 1; i < n; ++i) { - triangle = arc.slice(i - 1, i + 2); - triangle[1][2] = triangleArea(triangle); - triangles.push(triangle); - heap.push(triangle); - } + function register(polygon) { + polygon.forEach(function(ring$$) { + ring$$.forEach(function(arc) { + (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon); + }); + }); + polygons.push(polygon); + } + + function area(ring$$) { + return Math.abs(ring(object(topology, {type: "Polygon", arcs: [ring$$]}).coordinates[0])); + } - for (var i = 0, n = triangles.length; i < n; ++i) { - triangle = triangles[i]; - triangle.previous = triangles[i - 1]; - triangle.next = triangles[i + 1]; + polygons.forEach(function(polygon) { + if (!polygon._) { + var component = [], + neighbors = [polygon]; + polygon._ = 1; + components.push(component); + while (polygon = neighbors.pop()) { + component.push(polygon); + polygon.forEach(function(ring$$) { + ring$$.forEach(function(arc) { + polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon) { + if (!polygon._) { + polygon._ = 1; + neighbors.push(polygon); + } + }); + }); + }); } + } + }); - while (triangle = heap.pop()) { - var previous = triangle.previous, - next = triangle.next; + polygons.forEach(function(polygon) { + delete polygon._; + }); - // If the area of the current point is less than that of the previous point - // to be eliminated, use the latter's area instead. This ensures that the - // current point cannot be eliminated without eliminating previously- - // eliminated points. - if (triangle[1][2] < maxArea) triangle[1][2] = maxArea; - else maxArea = triangle[1][2]; + return { + type: "MultiPolygon", + arcs: components.map(function(polygons) { + var arcs = [], n; - if (previous) { - previous.next = next; - previous[2] = triangle[2]; - update(previous); - } + // Extract the exterior (unique) arcs. + polygons.forEach(function(polygon) { + polygon.forEach(function(ring$$) { + ring$$.forEach(function(arc) { + if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) { + arcs.push(arc); + } + }); + }); + }); - if (next) { - next.previous = previous; - next[0] = triangle[0]; - update(next); + // Stitch the arcs into one or more rings. + arcs = stitchArcs(topology, arcs); + + // If more than one ring is returned, + // at most one of these rings can be the exterior; + // choose the one with the greatest absolute area. + if ((n = arcs.length) > 1) { + for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) { + if ((ki = area(arcs[i])) > k) { + t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki; + } } } - arc.forEach(relative); + return arcs; + }) + }; +} + +function neighbors(objects) { + var indexesByArc = {}, // arc index -> array of object indexes + neighbors = objects.map(function() { return []; }); + + function line(arcs, i) { + arcs.forEach(function(a) { + if (a < 0) a = ~a; + var o = indexesByArc[a]; + if (o) o.push(i); + else indexesByArc[a] = [i]; }); + } + + function polygon(arcs, i) { + arcs.forEach(function(arc) { line(arc, i); }); + } + + function geometry(o, i) { + if (o.type === "GeometryCollection") o.geometries.forEach(function(o) { geometry(o, i); }); + else if (o.type in geometryType) geometryType[o.type](o.arcs, i); + } + + var geometryType = { + LineString: line, + MultiLineString: polygon, + Polygon: polygon, + MultiPolygon: function(arcs, i) { arcs.forEach(function(arc) { polygon(arc, i); }); } + }; + + objects.forEach(geometry); + + for (var i in indexesByArc) { + for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) { + for (var k = j + 1; k < m; ++k) { + var ij = indexes[j], ik = indexes[k], n; + if ((n = neighbors[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik); + if ((n = neighbors[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij); + } + } + } + + return neighbors; +} + +function compareArea(a, b) { + return a[1][2] - b[1][2]; +} + +function minAreaHeap() { + var heap = {}, + array = [], + size = 0; + + heap.push = function(object) { + up(array[object._ = size] = object, size++); + return size; + }; - function update(triangle) { - heap.remove(triangle); + heap.pop = function() { + if (size <= 0) return; + var removed = array[0], object; + if (--size > 0) object = array[size], down(array[object._ = 0] = object, 0); + return removed; + }; + + heap.remove = function(removed) { + var i = removed._, object; + if (array[i] !== removed) return; // invalid request + if (i !== --size) object = array[size], (compareArea(object, removed) < 0 ? up : down)(array[object._ = i] = object, i); + return i; + }; + + function up(object, i) { + while (i > 0) { + var j = ((i + 1) >> 1) - 1, + parent = array[j]; + if (compareArea(object, parent) >= 0) break; + array[parent._ = i] = parent; + array[object._ = i = j] = object; + } + } + + function down(object, i) { + while (true) { + var r = (i + 1) << 1, + l = r - 1, + j = i, + child = array[j]; + if (l < size && compareArea(array[l], child) < 0) child = array[j = l]; + if (r < size && compareArea(array[r], child) < 0) child = array[j = r]; + if (j === i) break; + array[child._ = i] = child; + array[object._ = i = j] = object; + } + } + + return heap; +} + +function presimplify(topology, triangleArea) { + var absolute = transformAbsolute(topology.transform), + relative = transformRelative(topology.transform), + heap = minAreaHeap(); + + if (!triangleArea) triangleArea = cartesianTriangleArea; + + topology.arcs.forEach(function(arc) { + var triangles = [], + maxArea = 0, + triangle, + i, + n, + p; + + // To store each point’s effective area, we create a new array rather than + // extending the passed-in point to workaround a Chrome/V8 bug (getting + // stuck in smi mode). For midpoints, the initial effective area of + // Infinity will be computed in the next step. + for (i = 0, n = arc.length; i < n; ++i) { + p = arc[i]; + absolute(arc[i] = [p[0], p[1], Infinity], i); + } + + for (i = 1, n = arc.length - 1; i < n; ++i) { + triangle = arc.slice(i - 1, i + 2); triangle[1][2] = triangleArea(triangle); + triangles.push(triangle); heap.push(triangle); } - return topology; - }; - - function cartesianRingArea(ring) { - var i = -1, - n = ring.length, - a, - b = ring[n - 1], - area = 0; - - while (++i < n) { - a = b; - b = ring[i]; - area += a[0] * b[1] - a[1] * b[0]; + for (i = 0, n = triangles.length; i < n; ++i) { + triangle = triangles[i]; + triangle.previous = triangles[i - 1]; + triangle.next = triangles[i + 1]; } - return area * .5; - } - - function cartesianTriangleArea(triangle) { - var a = triangle[0], b = triangle[1], c = triangle[2]; - return Math.abs((a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1])); - } + while (triangle = heap.pop()) { + var previous = triangle.previous, + next = triangle.next; - function compareArea(a, b) { - return a[1][2] - b[1][2]; - } - - function minAreaHeap() { - var heap = {}, - array = [], - size = 0; - - heap.push = function(object) { - up(array[object._ = size] = object, size++); - return size; - }; + // If the area of the current point is less than that of the previous point + // to be eliminated, use the latter's area instead. This ensures that the + // current point cannot be eliminated without eliminating previously- + // eliminated points. + if (triangle[1][2] < maxArea) triangle[1][2] = maxArea; + else maxArea = triangle[1][2]; - heap.pop = function() { - if (size <= 0) return; - var removed = array[0], object; - if (--size > 0) object = array[size], down(array[object._ = 0] = object, 0); - return removed; - }; + if (previous) { + previous.next = next; + previous[2] = triangle[2]; + update(previous); + } - heap.remove = function(removed) { - var i = removed._, object; - if (array[i] !== removed) return; // invalid request - if (i !== --size) object = array[size], (compareArea(object, removed) < 0 ? up : down)(array[object._ = i] = object, i); - return i; - }; - - function up(object, i) { - while (i > 0) { - var j = ((i + 1) >> 1) - 1, - parent = array[j]; - if (compareArea(object, parent) >= 0) break; - array[parent._ = i] = parent; - array[object._ = i = j] = object; + if (next) { + next.previous = previous; + next[0] = triangle[0]; + update(next); } } - function down(object, i) { - while (true) { - var r = (i + 1) << 1, - l = r - 1, - j = i, - child = array[j]; - if (l < size && compareArea(array[l], child) < 0) child = array[j = l]; - if (r < size && compareArea(array[r], child) < 0) child = array[j = r]; - if (j === i) break; - array[child._ = i] = child; - array[object._ = i = j] = object; - } - } + arc.forEach(relative); + }); - return heap; + function update(triangle) { + heap.remove(triangle); + triangle[1][2] = triangleArea(triangle); + heap.push(triangle); } - function transformAbsolute(transform) { - if (!transform) return noop; - var x0, - y0, - kx = transform.scale[0], - ky = transform.scale[1], - dx = transform.translate[0], - dy = transform.translate[1]; - return function(point, i) { - if (!i) x0 = y0 = 0; - point[0] = (x0 += point[0]) * kx + dx; - point[1] = (y0 += point[1]) * ky + dy; - }; - } + return topology; +} + +var version = "1.6.27"; - function transformRelative(transform) { - if (!transform) return noop; - var x0, - y0, - kx = transform.scale[0], - ky = transform.scale[1], - dx = transform.translate[0], - dy = transform.translate[1]; - return function(point, i) { - if (!i) x0 = y0 = 0; - var x1 = (point[0] - dx) / kx | 0, - y1 = (point[1] - dy) / ky | 0; - point[0] = x1 - x0; - point[1] = y1 - y0; - x0 = x1; - y0 = y1; - }; - } +exports.version = version; +exports.mesh = mesh; +exports.meshArcs = meshArcs; +exports.merge = merge; +exports.mergeArcs = mergeArcs; +exports.feature = feature; +exports.neighbors = neighbors; +exports.presimplify = presimplify; - function noop() {} +Object.defineProperty(exports, '__esModule', { value: true }); - if (typeof define === "function" && define.amd) define(topojson); - else if (typeof module === "object" && module.exports) module.exports = topojson; - else this.topojson = topojson; -}(); +}))); \ No newline at end of file diff --git a/ennstatus/static/js/topojson/topojson.min.js b/ennstatus/static/js/topojson/topojson.min.js new file mode 100644 --- /dev/null +++ b/ennstatus/static/js/topojson/topojson.min.js @@ -0,0 +1,1 @@ +!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.topojson=n.topojson||{})}(this,function(n){"use strict";function t(){}function r(n){if(!n)return t;var r,e,o=n.scale[0],i=n.scale[1],u=n.translate[0],f=n.translate[1];return function(n,t){t||(r=e=0),n[0]=(r+=n[0])*o+u,n[1]=(e+=n[1])*i+f}}function e(n){if(!n)return t;var r,e,o=n.scale[0],i=n.scale[1],u=n.translate[0],f=n.translate[1];return function(n,t){t||(r=e=0);var c=Math.round((n[0]-u)/o),a=Math.round((n[1]-f)/i);n[0]=c-r,n[1]=a-e,r=c,e=a}}function o(n,t){for(var r,e=n.length,o=e-t;o<--e;)r=n[o],n[o++]=n[e],n[e]=r}function i(n,t){for(var r=0,e=n.length;r>>1;n[o]1){var c,s=[],l={LineString:o,MultiLineString:i,Polygon:i,MultiPolygon:function(n){n.forEach(i)}};u(t),s.forEach(arguments.length<3?function(n){f.push(n[0].i)}:function(n){r(n[0].g,n[n.length-1].g)&&f.push(n[0].i)})}else for(var h=0,p=n.arcs.length;h1)for(var u,f,c=1,s=e(i[0]);cs&&(f=i[0],i[0]=i[c],i[c]=f,s=u);return i})}}function d(n){function t(n,t){n.forEach(function(n){n<0&&(n=~n);var r=o[n];r?r.push(t):o[n]=[t]})}function r(n,r){n.forEach(function(n){t(n,r)})}function e(n,t){"GeometryCollection"===n.type?n.geometries.forEach(function(n){e(n,t)}):n.type in f&&f[n.type](n.arcs,t)}var o={},u=n.map(function(){return[]}),f={LineString:t,MultiLineString:r,Polygon:r,MultiPolygon:function(n,t){n.forEach(function(n){r(n,t)})}};n.forEach(e);for(var c in o)for(var a=o[c],s=a.length,l=0;l0;){var r=(t+1>>1)-1,o=e[r];if(y(n,o)>=0)break;e[o._=t]=o,e[n._=t=r]=n}}function t(n,t){for(;;){var r=t+1<<1,i=r-1,u=t,f=e[u];if(i0&&(n=e[o],t(e[n._=0]=n,0)),r}},r.remove=function(r){var i,u=r._;if(e[u]===r)return u!==--o&&(i=e[o],(y(i,r)<0?n:t)(e[i._=u]=i,u)),u},r}function E(n,t){function o(n){f.remove(n),n[1][2]=t(n),f.push(n)}var i=r(n.transform),u=e(n.transform),f=m();return t||(t=h),n.arcs.forEach(function(n){var r,e,c,a,s=[],l=0;for(e=0,c=n.length;e + * Video.js 5.0.2 * Copyright Brightcove, Inc. * Available under Apache License Version 2.0 * @@ -1773,18 +1773,51 @@ module.exports = identity; },{}],43:[function(_dereq_,module,exports){ 'use strict'; +var keys = _dereq_('object-keys'); + +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + if (typeof sym === 'string') { return false; } + if (sym instanceof Symbol) { return false; } + obj[sym] = 42; + for (sym in obj) { return false; } + if (keys(obj).length !== 0) { return false; } + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; } + } + + return true; +}; + +},{"object-keys":49}],44:[function(_dereq_,module,exports){ +'use strict'; + // modified from https://github.com/es-shims/es6-shim var keys = _dereq_('object-keys'); +var bind = _dereq_('function-bind'); var canBeObject = function (obj) { return typeof obj !== 'undefined' && obj !== null; }; -var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol'; -var defineProperties = _dereq_('define-properties'); +var hasSymbols = _dereq_('./hasSymbols')(); var toObject = Object; -var push = Array.prototype.push; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -var assignShim = function assign(target, source1) { +var push = bind.call(Function.call, Array.prototype.push); +var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); + +module.exports = function assign(target, source1) { if (!canBeObject(target)) { throw new TypeError('target must be an object'); } var objTarget = toObject(target); var s, source, i, props, syms; @@ -1794,8 +1827,8 @@ var assignShim = function assign(target, if (hasSymbols && Object.getOwnPropertySymbols) { syms = Object.getOwnPropertySymbols(source); for (i = 0; i < syms.length; ++i) { - if (propIsEnumerable.call(source, syms[i])) { - push.call(props, syms[i]); + if (propIsEnumerable(source, syms[i])) { + push(props, syms[i]); } } } @@ -1806,33 +1839,24 @@ var assignShim = function assign(target, return objTarget; }; -defineProperties(assignShim, { - shim: function shimObjectAssign() { - var assignHasPendingExceptions = function () { - if (!Object.assign || !Object.preventExtensions) { - return false; - } - // Firefox 37 still has "pending exception" logic in its Object.assign implementation, - // which is 72% slower than our shim, and Firefox 40's native implementation. - var thrower = Object.preventExtensions({ 1: 2 }); - try { - Object.assign(thrower, 'xy'); - } catch (e) { - return thrower[1] === 'y'; - } - }; - defineProperties( - Object, - { assign: assignShim }, - { assign: assignHasPendingExceptions } - ); - return Object.assign || assignShim; - } +},{"./hasSymbols":43,"function-bind":48,"object-keys":49}],45:[function(_dereq_,module,exports){ +'use strict'; + +var defineProperties = _dereq_('define-properties'); + +var implementation = _dereq_('./implementation'); +var getPolyfill = _dereq_('./polyfill'); +var shim = _dereq_('./shim'); + +defineProperties(implementation, { + implementation: implementation, + getPolyfill: getPolyfill, + shim: shim }); -module.exports = assignShim; - -},{"define-properties":44,"object-keys":46}],44:[function(_dereq_,module,exports){ +module.exports = implementation; + +},{"./implementation":44,"./polyfill":51,"./shim":52,"define-properties":46}],46:[function(_dereq_,module,exports){ 'use strict'; var keys = _dereq_('object-keys'); @@ -1848,10 +1872,10 @@ var isFunction = function (fn) { var arePropertyDescriptorsSupported = function () { var obj = {}; try { - Object.defineProperty(obj, 'x', { value: obj, enumerable: false }); - /* eslint-disable no-unused-vars */ + Object.defineProperty(obj, 'x', { enumerable: false, value: obj }); + /* eslint-disable no-unused-vars, no-restricted-syntax */ for (var _ in obj) { return false; } - /* eslint-enable no-unused-vars */ + /* eslint-enable no-unused-vars, no-restricted-syntax */ return obj.x === obj; } catch (e) { /* this is IE 8. */ return false; @@ -1867,8 +1891,8 @@ var defineProperty = function (object, n Object.defineProperty(object, name, { configurable: true, enumerable: false, - writable: true, - value: value + value: value, + writable: true }); } else { object[name] = value; @@ -1890,7 +1914,7 @@ defineProperties.supportsDescriptors = ! module.exports = defineProperties; -},{"foreach":45,"object-keys":46}],45:[function(_dereq_,module,exports){ +},{"foreach":47,"object-keys":49}],47:[function(_dereq_,module,exports){ var hasOwn = Object.prototype.hasOwnProperty; var toString = Object.prototype.toString; @@ -1914,7 +1938,57 @@ module.exports = function forEach (obj, }; -},{}],46:[function(_dereq_,module,exports){ +},{}],48:[function(_dereq_,module,exports){ +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var slice = Array.prototype.slice; +var toStr = Object.prototype.toString; +var funcType = '[object Function]'; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + } + }; + + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push('$' + i); + } + + var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; + + +},{}],49:[function(_dereq_,module,exports){ 'use strict'; // modified from https://github.com/es-shims/es5-shim @@ -1922,7 +1996,7 @@ var has = Object.prototype.hasOwnPropert var toStr = Object.prototype.toString; var slice = Array.prototype.slice; var isArgs = _dereq_('./isArguments'); -var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString'); +var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'); var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype'); var dontEnums = [ 'toString', @@ -1938,31 +2012,37 @@ var equalsConstructorPrototype = functio return ctor && ctor.prototype === o; }; var blacklistedKeys = { - $window: true, $console: true, + $frame: true, + $frameElement: true, + $frames: true, $parent: true, $self: true, - $frames: true, $webkitIndexedDB: true, - $webkitStorageInfo: true + $webkitStorageInfo: true, + $window: true }; var hasAutomationEqualityBug = (function () { /* global window */ if (typeof window === 'undefined') { return false; } for (var k in window) { - if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; + try { + if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { + try { + equalsConstructorPrototype(window[k]); + } catch (e) { + return true; + } } + } catch (e) { + return true; } } return false; }()); var equalsConstructorPrototypeIfNotBuggy = function (o) { /* global window */ - if (typeof window === 'undefined' && !hasAutomationEqualityBug) { + if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(o); } try { @@ -2015,9 +2095,7 @@ var keysShim = function keys(object) { }; keysShim.shim = function shimObjectKeys() { - if (!Object.keys) { - Object.keys = keysShim; - } else { + if (Object.keys) { var keysWorksWithArguments = (function () { // Safari 5.0 bug return (Object.keys(arguments) || '').length === 2; @@ -2032,13 +2110,15 @@ keysShim.shim = function shimObjectKeys( } }; } + } else { + Object.keys = keysShim; } return Object.keys || keysShim; }; module.exports = keysShim; -},{"./isArguments":47}],47:[function(_dereq_,module,exports){ +},{"./isArguments":50}],50:[function(_dereq_,module,exports){ 'use strict'; var toStr = Object.prototype.toString; @@ -2057,7 +2137,44 @@ module.exports = function isArguments(va return isArgs; }; -},{}],48:[function(_dereq_,module,exports){ +},{}],51:[function(_dereq_,module,exports){ +'use strict'; + +var implementation = _dereq_('./implementation'); + +var assignHasPendingExceptions = function () { + if (!Object.assign || !Object.preventExtensions) { + return false; + } + // Firefox 37 still has "pending exception" logic in its Object.assign implementation, + // which is 72% slower than our shim, and Firefox 40's native implementation. + var thrower = Object.preventExtensions({ 1: 2 }); + try { + Object.assign(thrower, 'xy'); + } catch (e) { + return thrower[1] === 'y'; + } +}; + +module.exports = function getPolyfill() { + return !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign; +}; + +},{"./implementation":44}],52:[function(_dereq_,module,exports){ +'use strict'; + +var define = _dereq_('define-properties'); +var getPolyfill = _dereq_('./polyfill'); + +module.exports = function shimAssign() { + var polyfill = getPolyfill(); + if (Object.assign !== polyfill) { + define(Object, { assign: polyfill }); + } + return polyfill; +}; + +},{"./polyfill":51,"define-properties":46}],53:[function(_dereq_,module,exports){ module.exports = SafeParseTuple function SafeParseTuple(obj, reviver) { @@ -2073,7 +2190,7 @@ function SafeParseTuple(obj, reviver) { return [error, json] } -},{}],49:[function(_dereq_,module,exports){ +},{}],54:[function(_dereq_,module,exports){ function clean (s) { return s.replace(/\n\r?\s*/g, '') } @@ -2088,7 +2205,7 @@ module.exports = function tsml (sa) { return s } -},{}],50:[function(_dereq_,module,exports){ +},{}],55:[function(_dereq_,module,exports){ "use strict"; var window = _dereq_("global/window") var once = _dereq_("once") @@ -2279,7 +2396,7 @@ function createXHR(options, callback) { function noop() {} -},{"global/window":2,"once":51,"parse-headers":55}],51:[function(_dereq_,module,exports){ +},{"global/window":2,"once":56,"parse-headers":60}],56:[function(_dereq_,module,exports){ module.exports = once once.proto = once(function () { @@ -2300,7 +2417,7 @@ function once (fn) { } } -},{}],52:[function(_dereq_,module,exports){ +},{}],57:[function(_dereq_,module,exports){ var isFunction = _dereq_('is-function') module.exports = forEach @@ -2348,7 +2465,7 @@ function forEachObject(object, iterator, } } -},{"is-function":53}],53:[function(_dereq_,module,exports){ +},{"is-function":58}],58:[function(_dereq_,module,exports){ module.exports = isFunction var toString = Object.prototype.toString @@ -2365,7 +2482,7 @@ function isFunction (fn) { fn === window.prompt)) }; -},{}],54:[function(_dereq_,module,exports){ +},{}],59:[function(_dereq_,module,exports){ exports = module.exports = trim; @@ -2381,7 +2498,7 @@ exports.right = function(str){ return str.replace(/\s*$/, ''); }; -},{}],55:[function(_dereq_,module,exports){ +},{}],60:[function(_dereq_,module,exports){ var trim = _dereq_('trim') , forEach = _dereq_('for-each') , isArray = function(arg) { @@ -2413,7 +2530,7 @@ module.exports = function (headers) { return result } -},{"for-each":52,"trim":54}],56:[function(_dereq_,module,exports){ +},{"for-each":57,"trim":59}],61:[function(_dereq_,module,exports){ /** * @file big-play-button.js */ @@ -2484,7 +2601,7 @@ BigPlayButton.prototype.controlText_ = ' exports['default'] = BigPlayButton; module.exports = exports['default']; -},{"./button.js":57,"./component.js":58}],57:[function(_dereq_,module,exports){ +},{"./button.js":62,"./component.js":63}],62:[function(_dereq_,module,exports){ /** * @file button.js */ @@ -2665,7 +2782,7 @@ var Button = (function (_Component) { exports['default'] = Button; module.exports = exports['default']; -},{"./component":58,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"global/document":1,"object.assign":43}],58:[function(_dereq_,module,exports){ +},{"./component":63,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"global/document":1,"object.assign":45}],63:[function(_dereq_,module,exports){ /** * @file component.js * @@ -4074,7 +4191,7 @@ Component.registerComponent('Component', exports['default'] = Component; module.exports = exports['default']; -},{"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/to-title-case.js":127,"global/window":2,"object.assign":43}],59:[function(_dereq_,module,exports){ +},{"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/to-title-case.js":132,"global/window":2,"object.assign":45}],64:[function(_dereq_,module,exports){ /** * @file control-bar.js */ @@ -4199,7 +4316,7 @@ ControlBar.prototype.options_ = { exports['default'] = ControlBar; module.exports = exports['default']; -},{"../component.js":58,"./fullscreen-toggle.js":60,"./live-display.js":61,"./mute-toggle.js":62,"./play-toggle.js":63,"./playback-rate-menu/playback-rate-menu-button.js":64,"./progress-control/progress-control.js":69,"./spacer-controls/custom-control-spacer.js":71,"./text-track-controls/captions-button.js":74,"./text-track-controls/chapters-button.js":75,"./text-track-controls/subtitles-button.js":78,"./time-controls/current-time-display.js":81,"./time-controls/duration-display.js":82,"./time-controls/remaining-time-display.js":83,"./time-controls/time-divider.js":84,"./volume-control/volume-control.js":86,"./volume-menu-button.js":88}],60:[function(_dereq_,module,exports){ +},{"../component.js":63,"./fullscreen-toggle.js":65,"./live-display.js":66,"./mute-toggle.js":67,"./play-toggle.js":68,"./playback-rate-menu/playback-rate-menu-button.js":69,"./progress-control/progress-control.js":74,"./spacer-controls/custom-control-spacer.js":76,"./text-track-controls/captions-button.js":79,"./text-track-controls/chapters-button.js":80,"./text-track-controls/subtitles-button.js":83,"./time-controls/current-time-display.js":86,"./time-controls/duration-display.js":87,"./time-controls/remaining-time-display.js":88,"./time-controls/time-divider.js":89,"./volume-control/volume-control.js":91,"./volume-menu-button.js":93}],65:[function(_dereq_,module,exports){ /** * @file fullscreen-toggle.js */ @@ -4273,7 +4390,7 @@ FullscreenToggle.prototype.controlText_ exports['default'] = FullscreenToggle; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58}],61:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63}],66:[function(_dereq_,module,exports){ /** * @file live-display.js */ @@ -4355,7 +4472,7 @@ var LiveDisplay = (function (_Component) exports['default'] = LiveDisplay; module.exports = exports['default']; -},{"../component":58,"../utils/dom.js":118}],62:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/dom.js":123}],67:[function(_dereq_,module,exports){ /** * @file mute-toggle.js */ @@ -4482,7 +4599,7 @@ MuteToggle.prototype.controlText_ = 'Mut exports['default'] = MuteToggle; module.exports = exports['default']; -},{"../button":57,"../component":58,"../utils/dom.js":118}],63:[function(_dereq_,module,exports){ +},{"../button":62,"../component":63,"../utils/dom.js":123}],68:[function(_dereq_,module,exports){ /** * @file play-toggle.js */ @@ -4583,7 +4700,7 @@ PlayToggle.prototype.controlText_ = 'Pla exports['default'] = PlayToggle; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58}],64:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63}],69:[function(_dereq_,module,exports){ /** * @file playback-rate-menu-button.js */ @@ -4784,7 +4901,7 @@ PlaybackRateMenuButton.prototype.control exports['default'] = PlaybackRateMenuButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-button.js":95,"../../menu/menu.js":97,"../../utils/dom.js":118,"./playback-rate-menu-item.js":65}],65:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-button.js":100,"../../menu/menu.js":102,"../../utils/dom.js":123,"./playback-rate-menu-item.js":70}],70:[function(_dereq_,module,exports){ /** * @file playback-rate-menu-item.js */ @@ -4865,7 +4982,7 @@ PlaybackRateMenuItem.prototype.contentEl exports['default'] = PlaybackRateMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96}],66:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101}],71:[function(_dereq_,module,exports){ /** * @file load-progress-bar.js */ @@ -4971,7 +5088,7 @@ var LoadProgressBar = (function (_Compon exports['default'] = LoadProgressBar; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118}],67:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123}],72:[function(_dereq_,module,exports){ /** * @file mouse-time-display.js */ @@ -5073,7 +5190,7 @@ var MouseTimeDisplay = (function (_Compo exports['default'] = MouseTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/format-time.js":121,"lodash-compat/function/throttle":7}],68:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/format-time.js":126,"lodash-compat/function/throttle":7}],73:[function(_dereq_,module,exports){ /** * @file play-progress-bar.js */ @@ -5148,7 +5265,7 @@ var PlayProgressBar = (function (_Compon exports['default'] = PlayProgressBar; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/fn.js":120,"../../utils/format-time.js":121}],69:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/fn.js":125,"../../utils/format-time.js":126}],74:[function(_dereq_,module,exports){ /** * @file progress-control.js */ @@ -5217,7 +5334,7 @@ ProgressControl.prototype.options_ = { exports['default'] = ProgressControl; module.exports = exports['default']; -},{"../../component.js":58,"./mouse-time-display.js":67,"./seek-bar.js":70}],70:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./mouse-time-display.js":72,"./seek-bar.js":75}],75:[function(_dereq_,module,exports){ /** * @file seek-bar.js */ @@ -5403,7 +5520,7 @@ SeekBar.prototype.playerEvent = 'timeupd exports['default'] = SeekBar; module.exports = exports['default']; -},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"../../utils/format-time.js":121,"./load-progress-bar.js":66,"./play-progress-bar.js":68,"object.assign":43}],71:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"../../utils/format-time.js":126,"./load-progress-bar.js":71,"./play-progress-bar.js":73,"object.assign":45}],76:[function(_dereq_,module,exports){ /** * @file custom-control-spacer.js */ @@ -5477,7 +5594,7 @@ var CustomControlSpacer = (function (_Sp exports['default'] = CustomControlSpacer; module.exports = exports['default']; -},{"../../component.js":58,"./spacer.js":72}],72:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./spacer.js":77}],77:[function(_dereq_,module,exports){ /** * @file spacer.js */ @@ -5544,7 +5661,7 @@ var Spacer = (function (_Component) { exports['default'] = Spacer; module.exports = exports['default']; -},{"../../component.js":58}],73:[function(_dereq_,module,exports){ +},{"../../component.js":63}],78:[function(_dereq_,module,exports){ /** * @file caption-settings-menu-item.js */ @@ -5610,7 +5727,7 @@ var CaptionSettingsMenuItem = (function exports['default'] = CaptionSettingsMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-menu-item.js":80}],74:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-menu-item.js":85}],79:[function(_dereq_,module,exports){ /** * @file captions-button.js */ @@ -5716,7 +5833,7 @@ CaptionsButton.prototype.controlText_ = exports['default'] = CaptionsButton; module.exports = exports['default']; -},{"../../component.js":58,"./caption-settings-menu-item.js":73,"./text-track-button.js":79}],75:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./caption-settings-menu-item.js":78,"./text-track-button.js":84}],80:[function(_dereq_,module,exports){ /** * @file chapters-button.js */ @@ -5905,7 +6022,7 @@ ChaptersButton.prototype.controlText_ = exports['default'] = ChaptersButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu.js":97,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/to-title-case.js":127,"./chapters-track-menu-item.js":76,"./text-track-button.js":79,"./text-track-menu-item.js":80,"global/window":2}],76:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu.js":102,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/to-title-case.js":132,"./chapters-track-menu-item.js":81,"./text-track-button.js":84,"./text-track-menu-item.js":85,"global/window":2}],81:[function(_dereq_,module,exports){ /** * @file chapters-track-menu-item.js */ @@ -5995,7 +6112,7 @@ var ChaptersTrackMenuItem = (function (_ exports['default'] = ChaptersTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96,"../../utils/fn.js":120}],77:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101,"../../utils/fn.js":125}],82:[function(_dereq_,module,exports){ /** * @file off-text-track-menu-item.js */ @@ -6075,7 +6192,7 @@ var OffTextTrackMenuItem = (function (_T exports['default'] = OffTextTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-menu-item.js":80}],78:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-menu-item.js":85}],83:[function(_dereq_,module,exports){ /** * @file subtitles-button.js */ @@ -6138,7 +6255,7 @@ SubtitlesButton.prototype.controlText_ = exports['default'] = SubtitlesButton; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-button.js":79}],79:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-button.js":84}],84:[function(_dereq_,module,exports){ /** * @file text-track-button.js */ @@ -6246,7 +6363,7 @@ var TextTrackButton = (function (_MenuBu exports['default'] = TextTrackButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-button.js":95,"../../utils/fn.js":120,"./off-text-track-menu-item.js":77,"./text-track-menu-item.js":80}],80:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-button.js":100,"../../utils/fn.js":125,"./off-text-track-menu-item.js":82,"./text-track-menu-item.js":85}],85:[function(_dereq_,module,exports){ /** * @file text-track-menu-item.js */ @@ -6395,7 +6512,7 @@ var TextTrackMenuItem = (function (_Menu exports['default'] = TextTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96,"../../utils/fn.js":120,"global/document":1,"global/window":2}],81:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101,"../../utils/fn.js":125,"global/document":1,"global/window":2}],86:[function(_dereq_,module,exports){ /** * @file current-time-display.js */ @@ -6489,7 +6606,7 @@ var CurrentTimeDisplay = (function (_Com exports['default'] = CurrentTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],82:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],87:[function(_dereq_,module,exports){ /** * @file duration-display.js */ @@ -6590,7 +6707,7 @@ var DurationDisplay = (function (_Compon exports['default'] = DurationDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],83:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],88:[function(_dereq_,module,exports){ /** * @file remaining-time-display.js */ @@ -6688,7 +6805,7 @@ var RemainingTimeDisplay = (function (_C exports['default'] = RemainingTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],84:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],89:[function(_dereq_,module,exports){ /** * @file time-divider.js */ @@ -6746,7 +6863,7 @@ var TimeDivider = (function (_Component) exports['default'] = TimeDivider; module.exports = exports['default']; -},{"../../component.js":58}],85:[function(_dereq_,module,exports){ +},{"../../component.js":63}],90:[function(_dereq_,module,exports){ /** * @file volume-bar.js */ @@ -6891,7 +7008,7 @@ VolumeBar.prototype.playerEvent = 'volum exports['default'] = VolumeBar; module.exports = exports['default']; -},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"./volume-level.js":87}],86:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"./volume-level.js":92}],91:[function(_dereq_,module,exports){ /** * @file volume-control.js */ @@ -6969,7 +7086,7 @@ VolumeControl.prototype.options_ = { exports['default'] = VolumeControl; module.exports = exports['default']; -},{"../../component.js":58,"./volume-bar.js":85}],87:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./volume-bar.js":90}],92:[function(_dereq_,module,exports){ /** * @file volume-level.js */ @@ -7026,7 +7143,7 @@ var VolumeLevel = (function (_Component) exports['default'] = VolumeLevel; module.exports = exports['default']; -},{"../../component.js":58}],88:[function(_dereq_,module,exports){ +},{"../../component.js":63}],93:[function(_dereq_,module,exports){ /** * @file volume-menu-button.js */ @@ -7188,7 +7305,7 @@ VolumeMenuButton.prototype.controlText_ exports['default'] = VolumeMenuButton; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"../menu/menu-button.js":95,"../menu/menu.js":97,"./mute-toggle.js":62,"./volume-control/volume-bar.js":85}],89:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"../menu/menu-button.js":100,"../menu/menu.js":102,"./mute-toggle.js":67,"./volume-control/volume-bar.js":90}],94:[function(_dereq_,module,exports){ /** * @file error-display.js */ @@ -7270,7 +7387,7 @@ var ErrorDisplay = (function (_Component exports['default'] = ErrorDisplay; module.exports = exports['default']; -},{"./component":58,"./utils/dom.js":118}],90:[function(_dereq_,module,exports){ +},{"./component":63,"./utils/dom.js":123}],95:[function(_dereq_,module,exports){ /** * @file event-target.js */ @@ -7329,7 +7446,7 @@ EventTarget.prototype.dispatchEvent = Ev exports['default'] = EventTarget; module.exports = exports['default']; -},{"./utils/events.js":119}],91:[function(_dereq_,module,exports){ +},{"./utils/events.js":124}],96:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -7420,7 +7537,7 @@ var extendFn = function extendFn(superCl exports['default'] = extendFn; module.exports = exports['default']; -},{"./utils/log":123}],92:[function(_dereq_,module,exports){ +},{"./utils/log":128}],97:[function(_dereq_,module,exports){ /** * @file fullscreen-api.js */ @@ -7477,7 +7594,7 @@ if (browserApi) { exports['default'] = FullscreenApi; module.exports = exports['default']; -},{"global/document":1}],93:[function(_dereq_,module,exports){ +},{"global/document":1}],98:[function(_dereq_,module,exports){ /** * @file loading-spinner.js */ @@ -7532,7 +7649,7 @@ var LoadingSpinner = (function (_Compone exports['default'] = LoadingSpinner; module.exports = exports['default']; -},{"./component":58}],94:[function(_dereq_,module,exports){ +},{"./component":63}],99:[function(_dereq_,module,exports){ /** * @file media-error.js */ @@ -7623,7 +7740,7 @@ for (var errNum = 0; errNum < MediaError exports['default'] = MediaError; module.exports = exports['default']; -},{"object.assign":43}],95:[function(_dereq_,module,exports){ +},{"object.assign":45}],100:[function(_dereq_,module,exports){ /** * @file menu-button.js */ @@ -7897,7 +8014,7 @@ var MenuButton = (function (_Button) { exports['default'] = MenuButton; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/to-title-case.js":127,"./menu.js":97}],96:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/to-title-case.js":132,"./menu.js":102}],101:[function(_dereq_,module,exports){ /** * @file menu-item.js */ @@ -7992,7 +8109,7 @@ var MenuItem = (function (_Button) { exports['default'] = MenuItem; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"object.assign":43}],97:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"object.assign":45}],102:[function(_dereq_,module,exports){ /** * @file menu.js */ @@ -8090,7 +8207,7 @@ var Menu = (function (_Component) { exports['default'] = Menu; module.exports = exports['default']; -},{"../component.js":58,"../utils/dom.js":118,"../utils/events.js":119,"../utils/fn.js":120}],98:[function(_dereq_,module,exports){ +},{"../component.js":63,"../utils/dom.js":123,"../utils/events.js":124,"../utils/fn.js":125}],103:[function(_dereq_,module,exports){ /** * @file player.js */ @@ -10943,7 +11060,7 @@ exports['default'] = Player; module.exports = exports['default']; // If empty string, make it a parsable json object. -},{"./big-play-button.js":56,"./component.js":58,"./control-bar/control-bar.js":59,"./error-display.js":89,"./fullscreen-api.js":92,"./loading-spinner.js":93,"./media-error.js":94,"./poster-image.js":100,"./tech/html5.js":105,"./tech/loader.js":106,"./tracks/text-track-display.js":109,"./tracks/text-track-list-converter.js":111,"./tracks/text-track-settings.js":113,"./utils/browser.js":115,"./utils/buffer.js":116,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/to-title-case.js":127,"global/document":1,"global/window":2,"object.assign":43,"safe-json-parse/tuple":48}],99:[function(_dereq_,module,exports){ +},{"./big-play-button.js":61,"./component.js":63,"./control-bar/control-bar.js":64,"./error-display.js":94,"./fullscreen-api.js":97,"./loading-spinner.js":98,"./media-error.js":99,"./poster-image.js":105,"./tech/html5.js":110,"./tech/loader.js":111,"./tracks/text-track-display.js":114,"./tracks/text-track-list-converter.js":116,"./tracks/text-track-settings.js":118,"./utils/browser.js":120,"./utils/buffer.js":121,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/to-title-case.js":132,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],104:[function(_dereq_,module,exports){ /** * @file plugins.js */ @@ -10971,7 +11088,7 @@ var plugin = function plugin(name, init) exports['default'] = plugin; module.exports = exports['default']; -},{"./player.js":98}],100:[function(_dereq_,module,exports){ +},{"./player.js":103}],105:[function(_dereq_,module,exports){ /** * @file poster-image.js */ @@ -11131,7 +11248,7 @@ var PosterImage = (function (_Button) { exports['default'] = PosterImage; module.exports = exports['default']; -},{"./button.js":57,"./component.js":58,"./utils/browser.js":115,"./utils/dom.js":118,"./utils/fn.js":120}],101:[function(_dereq_,module,exports){ +},{"./button.js":62,"./component.js":63,"./utils/browser.js":120,"./utils/dom.js":123,"./utils/fn.js":125}],106:[function(_dereq_,module,exports){ /** * @file setup.js * @@ -11241,7 +11358,7 @@ exports.autoSetup = autoSetup; exports.autoSetupTimeout = autoSetupTimeout; exports.hasLoaded = hasLoaded; -},{"./utils/events.js":119,"global/document":1,"global/window":2}],102:[function(_dereq_,module,exports){ +},{"./utils/events.js":124,"global/document":1,"global/window":2}],107:[function(_dereq_,module,exports){ /** * @file slider.js */ @@ -11520,7 +11637,7 @@ var Slider = (function (_Component) { exports['default'] = Slider; module.exports = exports['default']; -},{"../component.js":58,"../utils/dom.js":118,"global/document":1,"object.assign":43}],103:[function(_dereq_,module,exports){ +},{"../component.js":63,"../utils/dom.js":123,"global/document":1,"object.assign":45}],108:[function(_dereq_,module,exports){ /** * @file flash-rtmp.js */ @@ -11620,7 +11737,7 @@ function FlashRtmpDecorator(Flash) { exports['default'] = FlashRtmpDecorator; module.exports = exports['default']; -},{}],104:[function(_dereq_,module,exports){ +},{}],109:[function(_dereq_,module,exports){ /** * @file flash.js * VideoJS-SWF - Custom Flash Player with HTML5-ish API @@ -12225,7 +12342,7 @@ Flash.getEmbedCode = function (swf, flas exports['default'] = Flash; module.exports = exports['default']; -},{"../component":58,"../utils/dom.js":118,"../utils/time-ranges.js":126,"../utils/url.js":128,"./flash-rtmp":103,"./tech":107,"global/window":2,"object.assign":43}],105:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/dom.js":123,"../utils/time-ranges.js":131,"../utils/url.js":133,"./flash-rtmp":108,"./tech":112,"global/window":2,"object.assign":45}],110:[function(_dereq_,module,exports){ /** * @file html5.js * HTML5 Media Controller - Wrapper for HTML5 Media API @@ -13464,7 +13581,7 @@ Html5.disposeMediaElement = function (el exports['default'] = Html5; module.exports = exports['default']; -},{"../component":58,"../utils/browser.js":115,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/log.js":123,"../utils/merge-options.js":124,"../utils/url.js":128,"./tech.js":107,"global/document":1,"global/window":2,"object.assign":43}],106:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/browser.js":120,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/log.js":128,"../utils/merge-options.js":129,"../utils/url.js":133,"./tech.js":112,"global/document":1,"global/window":2,"object.assign":45}],111:[function(_dereq_,module,exports){ /** * @file loader.js */ @@ -13539,7 +13656,7 @@ var MediaLoader = (function (_Component) exports['default'] = MediaLoader; module.exports = exports['default']; -},{"../component":58,"../utils/to-title-case.js":127,"global/window":2}],107:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/to-title-case.js":132,"global/window":2}],112:[function(_dereq_,module,exports){ /** * @file tech.js * Media Technology Controller - Base class for media playback @@ -13644,7 +13761,7 @@ var Tech = (function (_Component) { } if (!this.featuresNativeTextTracks) { - this.emulateTextTracks(); + this.on('ready', this.emulateTextTracks); } this.initTextTrackListeners(); @@ -14218,7 +14335,7 @@ Tech.withSourceHandlers = function (_Tec exports['default'] = Tech; module.exports = exports['default']; -},{"../component":58,"../media-error.js":94,"../tracks/text-track":114,"../tracks/text-track-list":112,"../utils/buffer.js":116,"../utils/fn.js":120,"../utils/log.js":123,"../utils/time-ranges.js":126,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){ +},{"../component":63,"../media-error.js":99,"../tracks/text-track":119,"../tracks/text-track-list":117,"../utils/buffer.js":121,"../utils/fn.js":125,"../utils/log.js":128,"../utils/time-ranges.js":131,"global/document":1,"global/window":2}],113:[function(_dereq_,module,exports){ /** * @file text-track-cue-list.js */ @@ -14315,7 +14432,7 @@ TextTrackCueList.prototype.getCueById = exports['default'] = TextTrackCueList; module.exports = exports['default']; -},{"../utils/browser.js":115,"global/document":1}],109:[function(_dereq_,module,exports){ +},{"../utils/browser.js":120,"global/document":1}],114:[function(_dereq_,module,exports){ /** * @file text-track-display.js */ @@ -14586,7 +14703,7 @@ function tryUpdateStyle(el, style, rule) exports['default'] = TextTrackDisplay; module.exports = exports['default']; -},{"../component":58,"../menu/menu-button.js":95,"../menu/menu-item.js":96,"../menu/menu.js":97,"../utils/fn.js":120,"global/document":1,"global/window":2}],110:[function(_dereq_,module,exports){ +},{"../component":63,"../menu/menu-button.js":100,"../menu/menu-item.js":101,"../menu/menu.js":102,"../utils/fn.js":125,"global/document":1,"global/window":2}],115:[function(_dereq_,module,exports){ /** * @file text-track-enums.js * @@ -14619,7 +14736,7 @@ var TextTrackKind = { exports.TextTrackMode = TextTrackMode; exports.TextTrackKind = TextTrackKind; -},{}],111:[function(_dereq_,module,exports){ +},{}],116:[function(_dereq_,module,exports){ /** * Utilities for capturing text track state and re-creating tracks * based on a capture. @@ -14706,7 +14823,7 @@ var jsonToTextTracks = function jsonToTe exports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ }; module.exports = exports['default']; -},{}],112:[function(_dereq_,module,exports){ +},{}],117:[function(_dereq_,module,exports){ /** * @file text-track-list.js */ @@ -14851,7 +14968,7 @@ TextTrackList.prototype.getTrackById = f exports['default'] = TextTrackList; module.exports = exports['default']; -},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"global/document":1}],113:[function(_dereq_,module,exports){ +},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"global/document":1}],118:[function(_dereq_,module,exports){ /** * @file text-track-settings.js */ @@ -15143,7 +15260,7 @@ function captionOptionsMenuTemplate() { exports['default'] = TextTrackSettings; module.exports = exports['default']; -},{"../component":58,"../utils/events.js":119,"../utils/fn.js":120,"../utils/log.js":123,"global/window":2,"safe-json-parse/tuple":48}],114:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/events.js":124,"../utils/fn.js":125,"../utils/log.js":128,"global/window":2,"safe-json-parse/tuple":53}],119:[function(_dereq_,module,exports){ /** * @file text-track.js */ @@ -15496,7 +15613,7 @@ var indexOf = function indexOf(searchEle exports['default'] = TextTrack; module.exports = exports['default']; -},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"../utils/guid.js":122,"../utils/log.js":123,"../utils/url.js":128,"./text-track-cue-list":108,"./text-track-enums":110,"global/document":1,"global/window":2,"xhr":50}],115:[function(_dereq_,module,exports){ +},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"../utils/guid.js":127,"../utils/log.js":128,"../utils/url.js":133,"./text-track-cue-list":113,"./text-track-enums":115,"global/document":1,"global/window":2,"xhr":55}],120:[function(_dereq_,module,exports){ /** * @file browser.js */ @@ -15585,7 +15702,7 @@ exports.TOUCH_ENABLED = TOUCH_ENABLED; var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style); exports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED; -},{"global/document":1,"global/window":2}],116:[function(_dereq_,module,exports){ +},{"global/document":1,"global/window":2}],121:[function(_dereq_,module,exports){ /** * @file buffer.js */ @@ -15634,7 +15751,7 @@ function bufferedPercent(buffered, durat return bufferedDuration / duration; } -},{"./time-ranges.js":126}],117:[function(_dereq_,module,exports){ +},{"./time-ranges.js":131}],122:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -15705,7 +15822,7 @@ exports['default'] = function (target) { module.exports = exports['default']; -},{"./log.js":123}],118:[function(_dereq_,module,exports){ +},{"./log.js":128}],123:[function(_dereq_,module,exports){ /** * @file dom.js */ @@ -16138,7 +16255,7 @@ function getPointerPosition(el, event) { return position; } -},{"./guid.js":122,"./log.js":123,"global/document":1,"global/window":2,"tsml":49}],119:[function(_dereq_,module,exports){ +},{"./guid.js":127,"./log.js":128,"global/document":1,"global/window":2,"tsml":54}],124:[function(_dereq_,module,exports){ /** * @file events.js * @@ -16546,7 +16663,7 @@ function _handleMultipleEvents(fn, elem, }); } -},{"./dom.js":118,"./guid.js":122,"global/document":1,"global/window":2}],120:[function(_dereq_,module,exports){ +},{"./dom.js":123,"./guid.js":127,"global/document":1,"global/window":2}],125:[function(_dereq_,module,exports){ /** * @file fn.js */ @@ -16590,7 +16707,7 @@ var bind = function bind(context, fn, ui }; exports.bind = bind; -},{"./guid.js":122}],121:[function(_dereq_,module,exports){ +},{"./guid.js":127}],126:[function(_dereq_,module,exports){ /** * @file format-time.js * @@ -16640,7 +16757,7 @@ function formatTime(seconds) { exports['default'] = formatTime; module.exports = exports['default']; -},{}],122:[function(_dereq_,module,exports){ +},{}],127:[function(_dereq_,module,exports){ /** * @file guid.js * @@ -16665,7 +16782,7 @@ function newGUID() { return _guid++; } -},{}],123:[function(_dereq_,module,exports){ +},{}],128:[function(_dereq_,module,exports){ /** * @file log.js */ @@ -16755,7 +16872,7 @@ function _logType(type, args) { exports['default'] = log; module.exports = exports['default']; -},{"global/window":2}],124:[function(_dereq_,module,exports){ +},{"global/window":2}],129:[function(_dereq_,module,exports){ /** * @file merge-options.js */ @@ -16826,7 +16943,7 @@ function mergeOptions() { module.exports = exports['default']; -},{"lodash-compat/object/merge":40}],125:[function(_dereq_,module,exports){ +},{"lodash-compat/object/merge":40}],130:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -16854,7 +16971,7 @@ var setTextContent = function setTextCon }; exports.setTextContent = setTextContent; -},{"global/document":1}],126:[function(_dereq_,module,exports){ +},{"global/document":1}],131:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -16925,7 +17042,7 @@ function rangeCheck(fnName, index, maxIn } } -},{"./log.js":123}],127:[function(_dereq_,module,exports){ +},{"./log.js":128}],132:[function(_dereq_,module,exports){ /** * @file to-title-case.js * @@ -16946,7 +17063,7 @@ function toTitleCase(string) { exports["default"] = toTitleCase; module.exports = exports["default"]; -},{}],128:[function(_dereq_,module,exports){ +},{}],133:[function(_dereq_,module,exports){ /** * @file url.js */ @@ -17082,7 +17199,7 @@ var isCrossOrigin = function isCrossOrig }; exports.isCrossOrigin = isCrossOrigin; -},{"global/document":1,"global/window":2}],129:[function(_dereq_,module,exports){ +},{"global/document":1,"global/window":2}],134:[function(_dereq_,module,exports){ /** * @file video.js */ @@ -17277,7 +17394,7 @@ setup.autoSetupTimeout(1, videojs); * * @type {String} */ -videojs.VERSION = '5.0.0'; +videojs.VERSION = '5.0.2'; /** * The global options object. These are the settings that take effect @@ -17693,7 +17810,7 @@ if (typeof define === 'function' && defi exports['default'] = videojs; module.exports = exports['default']; -},{"../../src/js/utils/merge-options.js":124,"./component":58,"./event-target":90,"./extend.js":91,"./player":98,"./plugins.js":99,"./setup":101,"./tech/flash.js":104,"./tech/html5.js":105,"./tracks/text-track.js":114,"./utils/browser.js":115,"./utils/create-deprecation-proxy.js":117,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/format-time.js":121,"./utils/log.js":123,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/url.js":128,"global/document":1,"lodash-compat/object/merge":40,"object.assign":43,"xhr":50}]},{},[129])(129) +},{"../../src/js/utils/merge-options.js":129,"./component":63,"./event-target":95,"./extend.js":96,"./player":103,"./plugins.js":104,"./setup":106,"./tech/flash.js":109,"./tech/html5.js":110,"./tracks/text-track.js":119,"./utils/browser.js":120,"./utils/create-deprecation-proxy.js":122,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/format-time.js":126,"./utils/log.js":128,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/url.js":133,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,"xhr":55}]},{},[134])(134) }); diff --git a/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js b/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js --- a/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js +++ b/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js @@ -1,16 +1,16 @@ /** * @license - * Video.js 5.0.0 + * Video.js 5.0.2 * Copyright Brightcove, Inc. * Available under Apache License Version 2.0 * */ -!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||r||n||(m=q=void 0),o}var m,n,o,p,q,r,s,t=0,u=!1,v=!0;if("function"!=typeof a)throw new TypeError(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:45,"object-keys":46}],45:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],46:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$window:!0,$console:!0,$parent:!0,$self:!0,$frames:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window&&!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],48:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],49:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d0&&(o=setTimeout(function(){n=!0,l.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",i(a)},a.timeout)),l.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&l.setRequestHeader(m,s[m]);else if(a.headers&&!c(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(l.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(l),l.send(r),l}function e(){}var f=a("global/window"),g=a("once"),h=a("parse-headers");b.exports=d,d.XMLHttpRequest=f.XMLHttpRequest||e,d.XDomainRequest="withCredentials"in new d.XMLHttpRequest?d.XMLHttpRequest:f.XDomainRequest},{"global/window":2,once:51,"parse-headers":55}],51:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],52:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":53}],53:[function(a,b){function c(a){var b=d.call(a);return"[object Function]"===b||"function"==typeof a&&"[object RegExp]"!==b||"undefined"!=typeof window&&(a===window.setTimeout||a===window.alert||a===window.confirm||a===window.prompt)}b.exports=c;var d=Object.prototype.toString},{}],54:[function(a,b,c){function d(a){return a.replace(/^\s*|\s*$/g,"")}c=b.exports=d,c.left=function(a){return a.replace(/^\s*/,"")},c.right=function(a){return a.replace(/\s*$/,"")}},{}],55:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":52,trim:54}],56:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":57,"./component.js":58}],57:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=a("./utils/events.js"),m=d(l),n=a("./utils/fn.js"),o=d(n),p=a("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return g(b,a),b.prototype.createEl=function(){var b=arguments.length<=0||void 0===arguments[0]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":58,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"global/document":1,"object.assign":43}],58:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a("global/window"),h=e(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/guid.js"),n=d(m),o=a("./utils/events.js"),p=d(o),q=a("./utils/log.js"),r=e(q),s=a("./utils/to-title-case.js"),t=e(s),u=a("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=x["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b,c){return j.createEl(a,b,c)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(r["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions,a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"), -this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+t["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/to-title-case.js":127,"global/window":2,"object.assign":43}],59:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":58,"./fullscreen-toggle.js":60,"./live-display.js":61,"./mute-toggle.js":62,"./play-toggle.js":63,"./playback-rate-menu/playback-rate-menu-button.js":64,"./progress-control/progress-control.js":69,"./spacer-controls/custom-control-spacer.js":71,"./text-track-controls/captions-button.js":74,"./text-track-controls/chapters-button.js":75,"./text-track-controls/subtitles-button.js":78,"./time-controls/current-time-display.js":81,"./time-controls/duration-display.js":82,"./time-controls/remaining-time-display.js":83,"./time-controls/time-divider.js":84,"./volume-control/volume-control.js":86,"./volume-menu-button.js":88}],60:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":57,"../component.js":58}],61:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-live-display",innerHTML:''+this.localize("Stream Type")+""+this.localize("LIVE")},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateShowing=function(){this.player().duration()===1/0?this.show():this.hide()},b}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":58,"../utils/dom.js":118}],62:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":57,"../component":58,"../utils/dom.js":118}],63:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":57,"../component.js":58}],64:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;da){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu-button.js":95,"../../menu/menu.js":97,"../../utils/dom.js":118,"./playback-rate-menu-item.js":65}],65:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu-item.js":96}],66:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:''+this.localize("Loaded")+": 0%"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118}],67:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/fn.js"),m=d(l),n=a("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/format-time.js":121,"lodash-compat/function/throttle":7}],68:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/fn.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateDataAttr(),this.on(c,"timeupdate",this.updateDataAttr),c.ready(k.bind(this,this.updateDataAttr))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:''+this.localize("Progress")+": 0%"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/fn.js":120,"../../utils/format-time.js":121}],69:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),a("./mouse-time-display.js")),k=(d(j),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));k.prototype.options_={children:["seekBar"]},h["default"].registerComponent("ProgressControl",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./mouse-time-display.js":67,"./seek-bar.js":70}],70:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"../../utils/format-time.js":121,"./load-progress-bar.js":66,"./play-progress-bar.js":68,"object.assign":43}],71:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,{className:this.buildCSSClass()});return b.innerHTML=" ",b},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./spacer.js":72}],72:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],73:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-menu-item.js":80}],74:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech_&&this.player().tech_.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":58,"./caption-settings-menu-item.js":73,"./text-track-button.js":79}],75:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./text-track-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./text-track-menu-item.js"),m=e(l),n=a("./chapters-track-menu-item.js"),o=e(n),p=a("../../menu/menu.js"),q=e(p),r=a("../../utils/dom.js"),s=d(r),t=a("../../utils/fn.js"),u=d(t),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),this.el_.setAttribute("aria-label","Chapters Menu")}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu.js":97,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/to-title-case.js":127,"./chapters-track-menu-item.js":76,"./text-track-button.js":79,"./text-track-menu-item.js":80,"global/window":2}],76:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0, -configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-menu-item.js":80}],78:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-button.js":79}],79:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent Time 0:00'},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],82:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:''+this.localize("Duration Time")+" 0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],83:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:''+this.localize("Remaining Time")+" -0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],84:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"

/
"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],85:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"./volume-level.js":87}],86:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:["volumeBar"]},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":58,"./volume-bar.js":85}],87:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],88:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];e(this,b),void 0===f.inline&&(f.inline=!0),void 0===f.vertical&&(f.vertical=f.inline?!1:!0),f.volumeBar=f.volumeBar||{},f.volumeBar.vertical=!!f.vertical,a.call(this,c,f),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),d.call(this),this.on(c,"loadstart",d),this.on(this.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),this.on(this.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")})}return f(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"../menu/menu-button.js":95,"../menu/menu.js":97,"./mute-toggle.js":62,"./volume-control/volume-bar.js":85}],89:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":58,"./utils/dom.js":118}],90:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":119}],91:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":123}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["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"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/to-title-case.js":127,"./menu.js":97}],96:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c,d){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"object.assign":43}],97:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("../utils/fn.js"),m=d(l),n=a("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":58,"../utils/dom.js":118,"../utils/events.js":119,"../utils/fn.js":120}],98:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component.js"),i=e(h),j=a("global/document"),k=e(j),l=a("global/window"),m=e(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/dom.js"),q=d(p),r=a("./utils/fn.js"),s=d(r),t=a("./utils/guid.js"),u=d(t),v=a("./utils/browser.js"),w=(d(v), -a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,e),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&q.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive(!0),this.reportUserActivity(),this.listenForUserActivity_(),this.on("fullscreenchange",this.handleFullscreenChange_),this.on("stageclick",this.handleStageClick_)}return g(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.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(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=q.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(c.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(c.startTime=this.cache_.currentTime),this.cache_.src=b.src);var d=i["default"].getComponent(a);this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech_),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"canplay",this.handleTechCanPlay_),this.on(this.tech_,"canplaythrough",this.handleTechCanPlayThrough_),this.on(this.tech_,"playing",this.handleTechPlaying_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"seeked",this.handleTechSeeked_),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_,"progress",this.handleTechProgress_),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_,"suspend",this.handleTechSuspend_),this.on(this.tech_,"abort",this.handleTechAbort_),this.on(this.tech_,"emptied",this.handleTechEmptied_),this.on(this.tech_,"stalled",this.handleTechStalled_),this.on(this.tech_,"loadedmetadata",this.handleTechLoadedMetaData_),this.on(this.tech_,"loadeddata",this.handleTechLoadedData_),this.on(this.tech_,"timeupdate",this.handleTechTimeUpdate_),this.on(this.tech_,"ratechange",this.handleTechRateChange_),this.on(this.tech_,"volumechange",this.handleTechVolumeChange_),this.on(this.tech_,"texttrackchange",this.handleTechTextTrackChange_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===a&&this.tag||q.insertElFirst(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},b.prototype.unloadTech_=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.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_)},b.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_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting_=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress_=function(){this.trigger("progress")},b.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},b.prototype.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd_=function(a){a.preventDefault()},b.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick_=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange_=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError_=function(){var a=this.tech_.error();this.error(a&&a.code)},b.prototype.handleTechSuspend_=function(){this.trigger("suspend")},b.prototype.handleTechAbort_=function(){this.trigger("abort")},b.prototype.handleTechEmptied_=function(){this.trigger("emptied")},b.prototype.handleTechStalled_=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData_=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData_=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate_=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange_=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange_=function(){this.trigger("volumechange")},b.prototype.handleTechTextTrackChange_=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall_=function(a,b){if(this.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["default"](b),b}},b.prototype.play=function(){return this.techCall_("play"),this},b.prototype.pause=function(){return this.techCall_("pause"),this},b.prototype.paused=function(){return this.techGet_("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall_("setCurrentTime",a),this):this.cache_.currentTime=this.techGet_("currentTime")||0},b.prototype.duration=function(a){return void 0===a?this.cache_.duration||0:(a=parseFloat(a)||0,0>a&&(a=1/0),a!==this.cache_.duration&&(this.cache_.duration=a,a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange")),this)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.bufferedPercent(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall_("setVolume",b),this):(b=parseFloat(this.techGet_("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return void 0!==a?(this.techCall_("setMuted",a),this):this.techGet_("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=k["default"].documentElement.style.overflow,o.on(k["default"],"keydown",s.bind(this,this.fullWindowOnEscKey)),k["default"].documentElement.style.overflow="hidden",q.addElClass(k["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,o.off(k["default"],"keydown",this.fullWindowOnEscKey),k["default"].documentElement.style.overflow=this.docOrigOverflow,q.removeElClass(k["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall_("setPlaybackRate",a),this):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet_("networkState")},b.prototype.readyState=function(){return this.techGet_("readyState")},b.prototype.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},b.prototype.addTextTrack=function(a,b,c){return this.tech_&&this.tech_.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech_&&this.tech_.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(q.getElAttributes(k)):"track"===l&&b.tracks.push(q.getElAttributes(k))}return b},b}(i["default"]));Z.players={};var $=m["default"].navigator;Z.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings"],language:k["default"].getElementsByTagName("html")[0].getAttribute("lang")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData_,Z.prototype.handleLoadedData_,Z.prototype.handleUserActive_,Z.prototype.handleUserInactive_,Z.prototype.handleTimeUpdate_,Z.prototype.handleVolumeChange_,Z.prototype.handleError_,Z.prototype.flexNotSupported_=function(){var a=k["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},i["default"].registerComponent("Player",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":56,"./component.js":58,"./control-bar/control-bar.js":59,"./error-display.js":89,"./fullscreen-api.js":92,"./loading-spinner.js":93,"./media-error.js":94,"./poster-image.js":100,"./tech/html5.js":105,"./tech/loader.js":106,"./tracks/text-track-display.js":109,"./tracks/text-track-list-converter.js":111,"./tracks/text-track-settings.js":113,"./utils/browser.js":115,"./utils/buffer.js":116,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/to-title-case.js":127,"global/document":1,"global/window":2,"object.assign":43,"safe-json-parse/tuple":48}],99:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":98}],100:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./button.js"),i=e(h),j=a("./component.js"),k=e(j),l=a("./utils/fn.js"),m=d(l),n=a("./utils/dom.js"),o=d(n),p=a("./utils/browser.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),c.on("posterchange",m.bind(this,this.update))}return g(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=o.createEl("div",{className:"vjs-poster",tabIndex:-1});return q.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=o.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(i["default"]);k["default"].registerComponent("PosterImage",r),c["default"]=r,b.exports=c["default"]},{"./button.js":57,"./component.js":58,"./utils/browser.js":115,"./utils/dom.js":118,"./utils/fn.js":120}],101:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":119,"global/document":1,"global/window":2}],102:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),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(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return g(b,a),b.prototype.createEl=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return c.className=c.className+" vjs-slider",c=o["default"]({tabIndex:0},c),d=o["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},d),a.prototype.createEl.call(this,b,c,d)},b.prototype.handleMouseDown=function(a){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove),this.off(m["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":58,"../utils/dom.js":118,"global/document":1,"object.assign":43}],103:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],104:[function(a,b,c){ -"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=function(a){function b(c,d){f(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return g(b,a),b.prototype.createEl=function(){var a=this.options_;a.swf||(a.swf="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return void 0===a?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){if(a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":58,"../utils/dom.js":118,"../utils/time-ranges.js":126,"../utils/url.js":128,"./flash-rtmp":103,"./tech":107,"global/window":2,"object.assign":43}],105:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.setElAttributes(a,i)}return a},b.prototype.handleLateInit_=function(a){var b=this;if(0!==a.networkState&&3!==a.networkState){if(0===a.readyState){var c=function(){var a=!1,c=function(){a=!0};b.on("loadstart",c);var d=function(){a||this.trigger("loadstart")};return b.on("loadedmetadata",d),b.ready(function(){this.off("loadstart",c),this.off("loadedmetadata",d),a||this.trigger("loadstart")}),{v:void 0}}();if("object"==typeof c)return c.v}var d=["loadstart"];d.push("loadedmetadata"),a.readyState>=2&&d.push("loadeddata"),a.readyState>=3&&d.push("canplay"),a.readyState>=4&&d.push("canplaythrough"),this.ready(function(){d.forEach(function(a){this.trigger(a)},this)})}},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){s["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=y["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=w["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":58,"../utils/browser.js":115,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/log.js":123,"../utils/merge-options.js":124,"../utils/url.js":128,"./tech.js":107,"global/document":1,"global/window":2,"object.assign":43}],106:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component"),h=d(g),i=a("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;gb)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":115,"global/document":1}],109:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={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'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"global/document":1}],113:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function i(a,b){if(b){var c=void 0;for(c=0;c select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-family select"),"change",p.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:j()})},b.prototype.getValues=function(){var a=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?v["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):v["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(l["default"]);l["default"].registerComponent("TextTrackSettings",w),c["default"]=w,b.exports=c["default"]},{"../component":58,"../utils/events.js":119,"../utils/fn.js":120,"../utils/log.js":123,"global/window":2,"safe-json-parse/tuple":48}],114:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)b[c]=E.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return n;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function F(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){F(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void B(d,b))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"../utils/guid.js":122,"../utils/log.js":123,"../utils/url.js":128,"./text-track-cue-list":108,"./text-track-enums":110,"global/document":1,"global/window":2,xhr:50}],115:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/AppleWebKit\/([\d.]+)/i.exec(i),k=j?parseFloat(j.pop()):null,l=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=p;var q=/Android/i.test(i);c.IS_ANDROID=q;var r=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],116:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":126}],117:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":123}],118:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){return a.raw=b,a}function g(a){return 0===a.indexOf("#")&&(a=a.slice(1)),x["default"].getElementById(a)}function h(){var a=arguments.length<=0||void 0===arguments[0]?"div":arguments[0],b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],d=x["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(D["default"].warn(F["default"](v,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function i(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function j(a){var b=a[H];return b||(b=a[H]=B.newGUID()),G[b]||(G[b]={}),G[b]}function k(a){var b=a[H];return b?!!Object.getOwnPropertyNames(G[b]).length:!1}function l(a){var b=a[H];if(b){delete G[b];try{delete a[H]}catch(c){a.removeAttribute?a.removeAttribute(H):a[H]=null}}}function m(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function n(a,b){m(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function o(a,b){if(m(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1); +!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||r||n||(m=q=void 0),o}var m,n,o,p,q,r,s,t=0,u=!1,v=!0;if("function"!=typeof a)throw new TypeError(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:47,"object-keys":49}],47:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],48:[function(a,b){var c="Function.prototype.bind called on incompatible ",d=Array.prototype.slice,e=Object.prototype.toString,f="[object Function]";b.exports=function(a){var b=this;if("function"!=typeof b||e.call(b)!==f)throw new TypeError(c+b);for(var g=d.call(arguments,1),h=function(){if(this instanceof l){var c=b.apply(this,g.concat(d.call(arguments)));return Object(c)===c?c:this}return b.apply(a,g.concat(d.call(arguments)))},i=Math.max(0,b.length-g.length),j=[],k=0;i>k;k++)j.push("$"+k);var l=Function("binder","return function ("+j.join(",")+"){ return binder.apply(this,arguments); }")(h);if(b.prototype){var m=function(){};m.prototype=b.prototype,l.prototype=new m,m.prototype=null}return l}},{}],49:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$console:!0,$frame:!0,$frameElement:!0,$frames:!0,$parent:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)try{if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window||!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],51:[function(a,b){"use strict";var c=a("./implementation"),d=function(){if(!Object.assign||!Object.preventExtensions)return!1;var a=Object.preventExtensions({1:2});try{Object.assign(a,"xy")}catch(b){return"y"===a[1]}};b.exports=function(){return!Object.assign||d()?c:Object.assign}},{"./implementation":44}],52:[function(a,b){"use strict";var c=a("define-properties"),d=a("./polyfill");b.exports=function(){var a=d();return Object.assign!==a&&c(Object,{assign:a}),a}},{"./polyfill":51,"define-properties":46}],53:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],54:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d0&&(o=setTimeout(function(){n=!0,l.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",i(a)},a.timeout)),l.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&l.setRequestHeader(m,s[m]);else if(a.headers&&!c(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(l.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(l),l.send(r),l}function e(){}var f=a("global/window"),g=a("once"),h=a("parse-headers");b.exports=d,d.XMLHttpRequest=f.XMLHttpRequest||e,d.XDomainRequest="withCredentials"in new d.XMLHttpRequest?d.XMLHttpRequest:f.XDomainRequest},{"global/window":2,once:56,"parse-headers":60}],56:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],57:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":58}],58:[function(a,b){function c(a){var b=d.call(a);return"[object Function]"===b||"function"==typeof a&&"[object RegExp]"!==b||"undefined"!=typeof window&&(a===window.setTimeout||a===window.alert||a===window.confirm||a===window.prompt)}b.exports=c;var d=Object.prototype.toString},{}],59:[function(a,b,c){function d(a){return a.replace(/^\s*|\s*$/g,"")}c=b.exports=d,c.left=function(a){return a.replace(/^\s*/,"")},c.right=function(a){return a.replace(/\s*$/,"")}},{}],60:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":57,trim:59}],61:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":62,"./component.js":63}],62:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=a("./utils/events.js"),m=d(l),n=a("./utils/fn.js"),o=d(n),p=a("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return g(b,a),b.prototype.createEl=function(){var b=arguments.length<=0||void 0===arguments[0]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":63,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"global/document":1,"object.assign":45}],63:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a("global/window"),h=e(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/guid.js"),n=d(m),o=a("./utils/events.js"),p=d(o),q=a("./utils/log.js"),r=e(q),s=a("./utils/to-title-case.js"),t=e(s),u=a("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=x["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b,c){return j.createEl(a,b,c)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(r["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions, +a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+t["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/to-title-case.js":132,"global/window":2,"object.assign":45}],64:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":63,"./fullscreen-toggle.js":65,"./live-display.js":66,"./mute-toggle.js":67,"./play-toggle.js":68,"./playback-rate-menu/playback-rate-menu-button.js":69,"./progress-control/progress-control.js":74,"./spacer-controls/custom-control-spacer.js":76,"./text-track-controls/captions-button.js":79,"./text-track-controls/chapters-button.js":80,"./text-track-controls/subtitles-button.js":83,"./time-controls/current-time-display.js":86,"./time-controls/duration-display.js":87,"./time-controls/remaining-time-display.js":88,"./time-controls/time-divider.js":89,"./volume-control/volume-control.js":91,"./volume-menu-button.js":93}],65:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":62,"../component.js":63}],66:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-live-display",innerHTML:''+this.localize("Stream Type")+""+this.localize("LIVE")},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateShowing=function(){this.player().duration()===1/0?this.show():this.hide()},b}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":63,"../utils/dom.js":123}],67:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":62,"../component":63,"../utils/dom.js":123}],68:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":62,"../component.js":63}],69:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;da){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu-button.js":100,"../../menu/menu.js":102,"../../utils/dom.js":123,"./playback-rate-menu-item.js":70}],70:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu-item.js":101}],71:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:''+this.localize("Loaded")+": 0%"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123}],72:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/fn.js"),m=d(l),n=a("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/format-time.js":126,"lodash-compat/function/throttle":7}],73:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/fn.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateDataAttr(),this.on(c,"timeupdate",this.updateDataAttr),c.ready(k.bind(this,this.updateDataAttr))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:''+this.localize("Progress")+": 0%"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/fn.js":125,"../../utils/format-time.js":126}],74:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),a("./mouse-time-display.js")),k=(d(j),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));k.prototype.options_={children:["seekBar"]},h["default"].registerComponent("ProgressControl",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./mouse-time-display.js":72,"./seek-bar.js":75}],75:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"../../utils/format-time.js":126,"./load-progress-bar.js":71,"./play-progress-bar.js":73,"object.assign":45}],76:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,{className:this.buildCSSClass()});return b.innerHTML=" ",b},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./spacer.js":77}],77:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],78:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-menu-item.js":85}],79:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech_&&this.player().tech_.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":63,"./caption-settings-menu-item.js":78,"./text-track-button.js":84}],80:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./text-track-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./text-track-menu-item.js"),m=e(l),n=a("./chapters-track-menu-item.js"),o=e(n),p=a("../../menu/menu.js"),q=e(p),r=a("../../utils/dom.js"),s=d(r),t=a("../../utils/fn.js"),u=d(t),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=function(a){ +function b(c,d,e){f(this,b),a.call(this,c,d,e),this.el_.setAttribute("aria-label","Chapters Menu")}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu.js":102,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/to-title-case.js":132,"./chapters-track-menu-item.js":81,"./text-track-button.js":84,"./text-track-menu-item.js":85,"global/window":2}],81:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-menu-item.js":85}],83:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-button.js":84}],84:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent Time 0:00'},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],87:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:''+this.localize("Duration Time")+" 0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],88:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:''+this.localize("Remaining Time")+" -0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],89:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"
/
"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],90:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"./volume-level.js":92}],91:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:["volumeBar"]},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":63,"./volume-bar.js":90}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],93:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];e(this,b),void 0===f.inline&&(f.inline=!0),void 0===f.vertical&&(f.vertical=f.inline?!1:!0),f.volumeBar=f.volumeBar||{},f.volumeBar.vertical=!!f.vertical,a.call(this,c,f),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),d.call(this),this.on(c,"loadstart",d),this.on(this.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),this.on(this.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")})}return f(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"../menu/menu-button.js":100,"../menu/menu.js":102,"./mute-toggle.js":67,"./volume-control/volume-bar.js":90}],94:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":63,"./utils/dom.js":123}],95:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":124}],96:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":128}],97:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["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"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/to-title-case.js":132,"./menu.js":102}],101:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c,d){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"object.assign":45}],102:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){ +if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("../utils/fn.js"),m=d(l),n=a("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":63,"../utils/dom.js":123,"../utils/events.js":124,"../utils/fn.js":125}],103:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component.js"),i=e(h),j=a("global/document"),k=e(j),l=a("global/window"),m=e(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/dom.js"),q=d(p),r=a("./utils/fn.js"),s=d(r),t=a("./utils/guid.js"),u=d(t),v=a("./utils/browser.js"),w=(d(v),a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,e),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&q.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive(!0),this.reportUserActivity(),this.listenForUserActivity_(),this.on("fullscreenchange",this.handleFullscreenChange_),this.on("stageclick",this.handleStageClick_)}return g(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.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(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=q.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(c.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(c.startTime=this.cache_.currentTime),this.cache_.src=b.src);var d=i["default"].getComponent(a);this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech_),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"canplay",this.handleTechCanPlay_),this.on(this.tech_,"canplaythrough",this.handleTechCanPlayThrough_),this.on(this.tech_,"playing",this.handleTechPlaying_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"seeked",this.handleTechSeeked_),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_,"progress",this.handleTechProgress_),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_,"suspend",this.handleTechSuspend_),this.on(this.tech_,"abort",this.handleTechAbort_),this.on(this.tech_,"emptied",this.handleTechEmptied_),this.on(this.tech_,"stalled",this.handleTechStalled_),this.on(this.tech_,"loadedmetadata",this.handleTechLoadedMetaData_),this.on(this.tech_,"loadeddata",this.handleTechLoadedData_),this.on(this.tech_,"timeupdate",this.handleTechTimeUpdate_),this.on(this.tech_,"ratechange",this.handleTechRateChange_),this.on(this.tech_,"volumechange",this.handleTechVolumeChange_),this.on(this.tech_,"texttrackchange",this.handleTechTextTrackChange_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===a&&this.tag||q.insertElFirst(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},b.prototype.unloadTech_=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.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_)},b.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_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting_=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress_=function(){this.trigger("progress")},b.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},b.prototype.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd_=function(a){a.preventDefault()},b.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick_=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange_=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError_=function(){var a=this.tech_.error();this.error(a&&a.code)},b.prototype.handleTechSuspend_=function(){this.trigger("suspend")},b.prototype.handleTechAbort_=function(){this.trigger("abort")},b.prototype.handleTechEmptied_=function(){this.trigger("emptied")},b.prototype.handleTechStalled_=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData_=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData_=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate_=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange_=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange_=function(){this.trigger("volumechange")},b.prototype.handleTechTextTrackChange_=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall_=function(a,b){if(this.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["default"](b),b}},b.prototype.play=function(){return this.techCall_("play"),this},b.prototype.pause=function(){return this.techCall_("pause"),this},b.prototype.paused=function(){return this.techGet_("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall_("setCurrentTime",a),this):this.cache_.currentTime=this.techGet_("currentTime")||0},b.prototype.duration=function(a){return void 0===a?this.cache_.duration||0:(a=parseFloat(a)||0,0>a&&(a=1/0),a!==this.cache_.duration&&(this.cache_.duration=a,a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange")),this)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.bufferedPercent(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall_("setVolume",b),this):(b=parseFloat(this.techGet_("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return void 0!==a?(this.techCall_("setMuted",a),this):this.techGet_("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=k["default"].documentElement.style.overflow,o.on(k["default"],"keydown",s.bind(this,this.fullWindowOnEscKey)),k["default"].documentElement.style.overflow="hidden",q.addElClass(k["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,o.off(k["default"],"keydown",this.fullWindowOnEscKey),k["default"].documentElement.style.overflow=this.docOrigOverflow,q.removeElClass(k["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall_("setPlaybackRate",a),this):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet_("networkState")},b.prototype.readyState=function(){return this.techGet_("readyState")},b.prototype.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},b.prototype.addTextTrack=function(a,b,c){return this.tech_&&this.tech_.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech_&&this.tech_.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(q.getElAttributes(k)):"track"===l&&b.tracks.push(q.getElAttributes(k))}return b},b}(i["default"]));Z.players={};var $=m["default"].navigator;Z.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings"],language:k["default"].getElementsByTagName("html")[0].getAttribute("lang")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData_,Z.prototype.handleLoadedData_,Z.prototype.handleUserActive_,Z.prototype.handleUserInactive_,Z.prototype.handleTimeUpdate_,Z.prototype.handleVolumeChange_,Z.prototype.handleError_,Z.prototype.flexNotSupported_=function(){var a=k["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},i["default"].registerComponent("Player",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":61,"./component.js":63,"./control-bar/control-bar.js":64,"./error-display.js":94,"./fullscreen-api.js":97,"./loading-spinner.js":98,"./media-error.js":99,"./poster-image.js":105,"./tech/html5.js":110,"./tech/loader.js":111,"./tracks/text-track-display.js":114,"./tracks/text-track-list-converter.js":116,"./tracks/text-track-settings.js":118,"./utils/browser.js":120,"./utils/buffer.js":121,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/to-title-case.js":132,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],104:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":103}],105:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./button.js"),i=e(h),j=a("./component.js"),k=e(j),l=a("./utils/fn.js"),m=d(l),n=a("./utils/dom.js"),o=d(n),p=a("./utils/browser.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),c.on("posterchange",m.bind(this,this.update))}return g(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=o.createEl("div",{className:"vjs-poster",tabIndex:-1});return q.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=o.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(i["default"]);k["default"].registerComponent("PosterImage",r),c["default"]=r,b.exports=c["default"]},{"./button.js":62,"./component.js":63,"./utils/browser.js":120,"./utils/dom.js":123,"./utils/fn.js":125}],106:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":124,"global/document":1,"global/window":2}],107:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),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(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return g(b,a),b.prototype.createEl=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return c.className=c.className+" vjs-slider",c=o["default"]({tabIndex:0},c),d=o["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},d),a.prototype.createEl.call(this,b,c,d)},b.prototype.handleMouseDown=function(a){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove), +this.off(m["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":63,"../utils/dom.js":123,"global/document":1,"object.assign":45}],108:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],109:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=function(a){function b(c,d){f(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return g(b,a),b.prototype.createEl=function(){var a=this.options_;a.swf||(a.swf="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return void 0===a?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){if(a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":63,"../utils/dom.js":123,"../utils/time-ranges.js":131,"../utils/url.js":133,"./flash-rtmp":108,"./tech":112,"global/window":2,"object.assign":45}],110:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.setElAttributes(a,i)}return a},b.prototype.handleLateInit_=function(a){var b=this;if(0!==a.networkState&&3!==a.networkState){if(0===a.readyState){var c=function(){var a=!1,c=function(){a=!0};b.on("loadstart",c);var d=function(){a||this.trigger("loadstart")};return b.on("loadedmetadata",d),b.ready(function(){this.off("loadstart",c),this.off("loadedmetadata",d),a||this.trigger("loadstart")}),{v:void 0}}();if("object"==typeof c)return c.v}var d=["loadstart"];d.push("loadedmetadata"),a.readyState>=2&&d.push("loadeddata"),a.readyState>=3&&d.push("canplay"),a.readyState>=4&&d.push("canplaythrough"),this.ready(function(){d.forEach(function(a){this.trigger(a)},this)})}},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){s["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=y["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=w["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":63,"../utils/browser.js":120,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/log.js":128,"../utils/merge-options.js":129,"../utils/url.js":133,"./tech.js":112,"global/document":1,"global/window":2,"object.assign":45}],111:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component"),h=d(g),i=a("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;gb)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":120,"global/document":1}],114:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={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'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"global/document":1}],118:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function i(a,b){if(b){var c=void 0;for(c=0;c select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-family select"),"change",p.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:j()})},b.prototype.getValues=function(){var a=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?v["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):v["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(l["default"]);l["default"].registerComponent("TextTrackSettings",w),c["default"]=w,b.exports=c["default"]},{"../component":63,"../utils/events.js":124,"../utils/fn.js":125,"../utils/log.js":128,"global/window":2,"safe-json-parse/tuple":53}],119:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)b[c]=E.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return n;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function F(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){F(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void B(d,b))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"../utils/guid.js":127,"../utils/log.js":128,"../utils/url.js":133,"./text-track-cue-list":113,"./text-track-enums":115,"global/document":1,"global/window":2,xhr:55}],120:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/AppleWebKit\/([\d.]+)/i.exec(i),k=j?parseFloat(j.pop()):null,l=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=p;var q=/Android/i.test(i);c.IS_ANDROID=q;var r=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],121:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":131}],122:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":128}],123:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){return a.raw=b,a}function g(a){return 0===a.indexOf("#")&&(a=a.slice(1)),x["default"].getElementById(a)}function h(){var a=arguments.length<=0||void 0===arguments[0]?"div":arguments[0],b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],d=x["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(D["default"].warn(F["default"](v,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function i(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function j(a){var b=a[H];return b||(b=a[H]=B.newGUID()),G[b]||(G[b]={}),G[b]}function k(a){var b=a[H];return b?!!Object.getOwnPropertyNames(G[b]).length:!1}function l(a){var b=a[H];if(b){delete G[b];try{delete a[H]}catch(c){a.removeAttribute?a.removeAttribute(H):a[H]=null}}}function m(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function n(a,b){m(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function o(a,b){if(m(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1); -a.className=c.join(" ")}}function p(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function q(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function r(){x["default"].body.focus(),x["default"].onselectstart=function(){return!1}}function s(){x["default"].onselectstart=function(){return!0}}function t(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=x["default"].documentElement,d=x["default"].body,e=c.clientLeft||d.clientLeft||0,f=z["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=z["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function u(a,b){var c={},d=t(a),e=a.offsetWidth,f=a.offsetHeight,g=d.top,h=d.left,i=b.pageY,j=b.pageX;return b.changedTouches&&(j=b.changedTouches[0].pageX,i=b.changedTouches[0].pageY),c.y=Math.max(0,Math.min(1,(g-i+f)/f)),c.x=Math.max(0,Math.min(1,(j-h)/e)),c}c.__esModule=!0,c.getEl=g,c.createEl=h,c.insertElFirst=i,c.getElData=j,c.hasElData=k,c.removeElData=l,c.hasElClass=m,c.addElClass=n,c.removeElClass=o,c.setElAttributes=p,c.getElAttributes=q,c.blockTextSelection=r,c.unblockTextSelection=s,c.findElPosition=t,c.getPointerPosition=u;var v=f(["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 ","."]),w=a("global/document"),x=e(w),y=a("global/window"),z=e(y),A=a("./guid.js"),B=d(A),C=a("./log.js"),D=e(C),E=a("tsml"),F=e(E),G={},H="vdata"+(new Date).getTime()},{"./guid.js":122,"./log.js":123,"global/document":1,"global/window":2,tsml:49}],119:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b,c){if(Array.isArray(b))return l(f,a,b,c);var d=n.getElData(a);d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=j(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,h=f.length;h>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===d.handlers[b].length&&(a.addEventListener?a.addEventListener(b,d.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,d.dispatcher))}function g(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return l(g,a,b,c);var e=function(b){d.handlers[b]=[],k(a,b)};if(b){var f=d.handlers[b];if(f){if(!c)return void e(b);if(c.guid)for(var h=0;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],122:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],123:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],124:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],125:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],126:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(a){return void 0===a||0===a.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:a.length,start:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||b>c)throw new Error("Failed to execute '"+a+"' on 'TimeRanges': The index provided ("+b+") is greater than or equal to the maximum bound ("+c+").")}c.__esModule=!0,c.createTimeRanges=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":123}],127:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],128:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;hx',a=b.firstChild.href}return a};c.getAbsoluteURL=j;var k=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=k;var l=function(a){var b=i(a),c=h["default"].location,d=":"===b.protocol?c.protocol:b.protocol,e=d+b.host!==c.protocol+c.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],129:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}d.__esModule=!0;{var g=b("global/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/html5.js"),X=(f(W),b("./tech/flash.js"));f(X)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var Y=function _(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),_.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&_.getPlayers()[a].ready(c),_.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},Z=h["default"].querySelector(".vjs-styles-defaults");if(!Z){Z=l.createStyleElement("vjs-styles-defaults");var $=h["default"].querySelector("head");$.insertBefore(Z,$.firstChild),l.setTextContent(Z,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,Y),Y.VERSION="5.0.0",Y.options=t["default"].prototype.options_,Y.getPlayers=function(){return t["default"].players},Y.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),Y.getComponent=n["default"].getComponent,Y.registerComponent=n["default"].registerComponent,Y.browser=L,Y.TOUCH_ENABLED=L.TOUCH_ENABLED,Y.extend=P["default"],Y.mergeOptions=x["default"],Y.bind=z.bind,Y.plugin=v["default"],Y.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](Y.options.languages,(c={},c[a]=b,c))[a]},Y.log=H["default"],Y.createTimeRange=Y.createTimeRanges=D.createTimeRanges,Y.formatTime=F["default"],Y.parseUrl=N.parseUrl,Y.isCrossOrigin=N.isCrossOrigin,Y.EventTarget=p["default"],Y.on=r.on,Y.one=r.one,Y.off=r.off,Y.trigger=r.trigger,Y.xhr=V["default"],Y.TextTrack=B["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return Y}):"object"==typeof d&&"object"==typeof c&&(c.exports=Y),d["default"]=Y,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":124,"./component":58,"./event-target":90,"./extend.js":91,"./player":98,"./plugins.js":99,"./setup":101,"./tech/flash.js":104,"./tech/html5.js":105,"./tracks/text-track.js":114,"./utils/browser.js":115,"./utils/create-deprecation-proxy.js":117,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/format-time.js":121,"./utils/log.js":123,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/url.js":128,"global/document":1,"lodash-compat/object/merge":40,"object.assign":43,xhr:50}]},{},[129])(129)}); +a.className=c.join(" ")}}function p(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function q(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function r(){x["default"].body.focus(),x["default"].onselectstart=function(){return!1}}function s(){x["default"].onselectstart=function(){return!0}}function t(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=x["default"].documentElement,d=x["default"].body,e=c.clientLeft||d.clientLeft||0,f=z["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=z["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function u(a,b){var c={},d=t(a),e=a.offsetWidth,f=a.offsetHeight,g=d.top,h=d.left,i=b.pageY,j=b.pageX;return b.changedTouches&&(j=b.changedTouches[0].pageX,i=b.changedTouches[0].pageY),c.y=Math.max(0,Math.min(1,(g-i+f)/f)),c.x=Math.max(0,Math.min(1,(j-h)/e)),c}c.__esModule=!0,c.getEl=g,c.createEl=h,c.insertElFirst=i,c.getElData=j,c.hasElData=k,c.removeElData=l,c.hasElClass=m,c.addElClass=n,c.removeElClass=o,c.setElAttributes=p,c.getElAttributes=q,c.blockTextSelection=r,c.unblockTextSelection=s,c.findElPosition=t,c.getPointerPosition=u;var v=f(["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 ","."]),w=a("global/document"),x=e(w),y=a("global/window"),z=e(y),A=a("./guid.js"),B=d(A),C=a("./log.js"),D=e(C),E=a("tsml"),F=e(E),G={},H="vdata"+(new Date).getTime()},{"./guid.js":127,"./log.js":128,"global/document":1,"global/window":2,tsml:54}],124:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b,c){if(Array.isArray(b))return l(f,a,b,c);var d=n.getElData(a);d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=j(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,h=f.length;h>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===d.handlers[b].length&&(a.addEventListener?a.addEventListener(b,d.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,d.dispatcher))}function g(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return l(g,a,b,c);var e=function(b){d.handlers[b]=[],k(a,b)};if(b){var f=d.handlers[b];if(f){if(!c)return void e(b);if(c.guid)for(var h=0;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],127:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],128:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],129:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],130:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],131:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(a){return void 0===a||0===a.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:a.length,start:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||b>c)throw new Error("Failed to execute '"+a+"' on 'TimeRanges': The index provided ("+b+") is greater than or equal to the maximum bound ("+c+").")}c.__esModule=!0,c.createTimeRanges=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":128}],132:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],133:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;hx',a=b.firstChild.href}return a};c.getAbsoluteURL=j;var k=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=k;var l=function(a){var b=i(a),c=h["default"].location,d=":"===b.protocol?c.protocol:b.protocol,e=d+b.host!==c.protocol+c.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],134:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}d.__esModule=!0;{var g=b("global/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/html5.js"),X=(f(W),b("./tech/flash.js"));f(X)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var Y=function _(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),_.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&_.getPlayers()[a].ready(c),_.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},Z=h["default"].querySelector(".vjs-styles-defaults");if(!Z){Z=l.createStyleElement("vjs-styles-defaults");var $=h["default"].querySelector("head");$.insertBefore(Z,$.firstChild),l.setTextContent(Z,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,Y),Y.VERSION="5.0.2",Y.options=t["default"].prototype.options_,Y.getPlayers=function(){return t["default"].players},Y.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),Y.getComponent=n["default"].getComponent,Y.registerComponent=n["default"].registerComponent,Y.browser=L,Y.TOUCH_ENABLED=L.TOUCH_ENABLED,Y.extend=P["default"],Y.mergeOptions=x["default"],Y.bind=z.bind,Y.plugin=v["default"],Y.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](Y.options.languages,(c={},c[a]=b,c))[a]},Y.log=H["default"],Y.createTimeRange=Y.createTimeRanges=D.createTimeRanges,Y.formatTime=F["default"],Y.parseUrl=N.parseUrl,Y.isCrossOrigin=N.isCrossOrigin,Y.EventTarget=p["default"],Y.on=r.on,Y.one=r.one,Y.off=r.off,Y.trigger=r.trigger,Y.xhr=V["default"],Y.TextTrack=B["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return Y}):"object"==typeof d&&"object"==typeof c&&(c.exports=Y),d["default"]=Y,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":129,"./component":63,"./event-target":95,"./extend.js":96,"./player":103,"./plugins.js":104,"./setup":106,"./tech/flash.js":109,"./tech/html5.js":110,"./tracks/text-track.js":119,"./utils/browser.js":120,"./utils/create-deprecation-proxy.js":122,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/format-time.js":126,"./utils/log.js":128,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/url.js":133,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,xhr:55}]},{},[134])(134)}); //# sourceMappingURL=video.novtt.min.js.map \ No newline at end of file diff --git a/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js.map b/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js.map --- a/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js.map +++ b/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js.map @@ -1,1 +1,1 @@ -{"version":3,"file":"video.novtt.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/date/now.js","node_modules/lodash-compat/function/debounce.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/function/throttle.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/safe-json-parse/tuple.js","node_modules/tsml/tsml.js","node_modules/xhr/index.js","node_modules/xhr/node_modules/once/once.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/node_modules/is-function/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/trim/index.js","node_modules/xhr/node_modules/parse-headers/parse-headers.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/mouse-time-display.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extend.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"getNative","nativeNow","Date","now","getTime","../internal/getNative",5,"debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject",6,"restParam","start","index","rest","Array","otherArgs",7,"throttle","./debounce",8,"arrayCopy","source","array",9,"arrayEach","iteratee",10,"baseCopy","props","object","key",11,"createBaseFor","baseFor","./createBaseFor",12,"baseForIn","keysIn","../object/keysIn","./baseFor",13,"baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",14,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",15,"toObject","baseProperty","./toObject",16,"bindCallback","argCount","identity","collection","accumulator","other","../utility/identity",17,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",18,"fromRight","keysFunc","iterable",19,"getLength","./baseProperty",20,"isNative","../lang/isNative",21,"isLength","./getLength","./isLength",22,"isHostObject","Object","toString",23,"reIsUint","test","MAX_SAFE_INTEGER","isIndex",24,"type","./isIndex",25,26,27,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",28,"support","unindexedChars","charAt","../support",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","objToString","nativeIsArray","../internal/isLength",31,"isFunction","funcTag","./isObject",32,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",33,34,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",35,"stringTag",36,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","enumPrototypes","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"arrayProto","splice","x","0","y","spliceObjects",42,43,"canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","assignShim","target","syms","objTarget","getOwnPropertySymbols","shim","assignHasPendingExceptions","assign","preventExtensions","thrower","define-properties","object-keys",44,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","enumerable","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",45,"hasOwn","ctx","k",46,"has","slice","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$window","$console","$parent","$self","$frames","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",47,"str","callee",48,"SafeParseTuple","reviver","json","error","err",49,"clean","sa",50,"isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","JSON","parse","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers",51,"called",52,"forEach","list","iterator","context","forEachArray","forEachString","forEachObject","len","string","is-function",53,"alert","confirm","prompt",54,"trim","right",55,"arg","split","row","indexOf","toLowerCase","Constructor","instance","player_","play","__esModule","newObj","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_interopRequireDefault","_component","Dom","_interopRequireWildcard","_utilsDomJs","Button","_Component","player","_classCallCheck","createEl","attributes","_objectAssign2","className","buildCSSClass","tabIndex","role","el","controlTextEl_","handleClick","default","_globalWindow2","_globalWindow","Fn","_utilsFnJs","Component","ready","options_","_utilsMergeOptionsJs2","id_","Guid","newGUID","el_","childIndex_","initChildren","dispose","trigger","bubbles","children_","childNameIndex_","off","_utilsLogJs2","warn","tagName","properties","localize","languages","language","primaryCode","addChild","child","component","componentName","childFound","parentOptions","_this","opts","children","_name","handleAdd","_this2","first","guid","cleanRemover","Events","on","second","bind","third","nodeName","one","_this3","_arguments","newFunc","isReady_","triggerReady","readyQueue","readyQueue_","dimension","widthOrHeight","num","skipListeners","style","pxIndex","touchStart","touchTimeThreshold","couldBeTap","event","touches","firstTouch","xdiff","pageX","touchDistance","sqrt","ydiff","tapMovementThreshold","noTap","touchTime","preventDefault","clearInterval","touchHolding","touchEnd","report","disposeFn","intervalId","setInterval","interval","getComponent","components_","extend","subObj","_name2","ControlBar","exitFullscreen","requestFullscreen","LiveDisplay","contentEl_","aria-live","appendChild","updateShowing","_button2","_button","MuteToggle","_Button","update","tech_","addClass","vol","volume","level","toMute","muted","localizedMute","controlText","removeElClass","addElClass","PlayToggle","removeClass","_playbackRateMenuItemJs2","_playbackRateMenuItemJs","PlaybackRateMenuButton","_MenuButton","labelEl_","createMenu","rates","playbackRates","currentRate","playbackRate","newRate","playbackRateSupported","PlaybackRateMenuItem","label","rate","parseFloat","selected","LoadProgressBar","buffered","duration","percent","time","end","width","percentify","bufferedEnd","part","left","_componentJs2","_componentJs","MouseTimeDisplay","handleMouseMove","position","findElPosition","parentNode","newTime","_utilsFormatTimeJs2","calculateDistance","PlayProgressBar","updateDataAttr","scrubbing","getCache","currentTime","_loadProgressBarJs","SeekBar","_Slider","stepBack","CustomControlSpacer","_Spacer","CaptionSettingsMenuItem","_TextTrackMenuItem","kind","CaptionsButton","_TextTrackButton","threshold","createItems","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","_menuMenuJs2","_menuMenuJs","ChaptersButton","items","tracks","textTracks","track","kind_","cues","chaptersTrack","menu","contentEl","cue","mi","_menuMenuItemJs2","_menuMenuItemJs","ChaptersTrackMenuItem","_MenuItem","OffTextTrackMenuItem","handleTracksChange","SubtitlesButton","_menuMenuButtonJs2","_menuMenuButtonJs","TextTrackButton","hide","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","TextTrackMenuItem","onchange","Event","_globalDocument2","createEvent","CurrentTimeDisplay","innerHTML","updateContent","localizedText","DurationDisplay","formattedTime","RemainingTimeDisplay","_sliderSliderJs2","_sliderSliderJs","VolumeBar","toFixed","setAttribute","VolumeControl","VolumeMenuButton","updateVisibility","inline","vertical","volumeUpdate","orientationClass","contentElType","_muteToggleJs2","ErrorDisplay","message","_utilsEventsJs","EventTarget","allowedEvents_","ael","addEventListener","extendFn","subClassMethods","methods","init","_utilsLog2","FullscreenApi","apiMap","specApi","browserApi","_objectAssign","MediaError","errorTypes","_menuJs2","_menuJs","MenuButton","title","unlockShowing","handleKeyPress","which","buttonPressed_","unpressButton","pressButton","MenuItem","_selected","append","_globalDocument","_utilsLogJs","_utilsToTitleCaseJs2","_utilsToTitleCaseJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_errorDisplayJs","reportTouchActivity","languagesToLower","poster_","poster","controls","scrubbing_","playerOptionsCopy","plugins","getOwnPropertyNames","isAudio","Player","players","styleEl_","removeChild","attrs","getElAttributes","attr","stylesheet","createStyleElement","defaultsStyleEl","querySelector","fluid","aspectRatio","initNetworkState_","networkState","privDimension","_dimension","parsedVal","isNaN","bool","fluid_","ratio","updateStyleEl_","aspectRatio_","videoWidth","videoHeight","ratioParts","ratioMultiplier","width_","height_","loadTech_","techName","unloadTech_","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","vtt.js","src","cache_","startTime","techComponent","handleTechReady_","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechSuspend_","handleTechAbort_","handleTechEmptied_","handleTechStalled_","handleTechLoadedData_","handleTechRateChange_","handleTechVolumeChange_","handleTechTextTrackChange_","usingNativeControls","techGet_","insertElFirst","addTechControlsListeners_","removeTechControlsListeners_","paused","hasStarted","_hasStarted","hasStarted_","handleTechClick_","button","techCall_","isScrubbing","seconds","percentAsDecimal","min","fsApi","fullscreenchange","documentFullscreenChange","isFullscreen","fullscreenElement","supportsFullScreen","_fullscreenApiJs2","fullWindowOnEscKey","exitFullWindow","documentElement","overflow","docOrigOverflow","selectSource","techOrder","tech","isSupported","b","canPlaySource","sourceList_","currentTech","load","sourceTech","controls_","error_","userActive","userActive_","stopPropagation","lastMoveX","lastMoveY","handleActivity","reportUserActivity","screenX","screenY","mouseInProgress","handleMouseUp","inactivityTimeout","userActivity_","tagOptions","dataSetup","_safeParseTuple","_safeJsonParseTuple2","hasChildNodes","childNodes","childName","baseOptions","notSupportedMessage","handleError_","flexNotSupported_","createElement","_buttonJs2","_buttonJs","PosterImage","setSrc","fallbackImg_","backgroundImage","autoSetup","vids","getElementsByTagName","audios","mediaEls","mediaEl","getAttribute","autoSetupTimeout","_windowLoaded","vjs","Slider","bar","getChild","barName","handleMouseDown","blockTextSelection","unblockTextSelection","progress","getPercent","percentage","vertical_","../component.js","../utils/dom.js","global/document","object.assign",103,"FlashRtmpDecorator","Flash","rtmp/mp4","rtmp/flv","streamFromParts","connection","stream","parts","streamBegin","connEnd","substring","isStreamingType","srcType","streamingFormats","isStreamingSrc","rtmpSourceHandler","handleSource","srcParts","_createSetter","attrUpper","toUpperCase","_api","val","_createGetter","vjs_getProperty","_tech2","_tech","_utilsUrlJs","setSource","_Tech","swf","objId","flashVars","readyFunction","errorEventProxyFunction","autoplay","params","wmode","bgcolor","Url","getAbsoluteURL","vjs_src","setCurrentTime","seekable","enterFullScreen","_readWrite","_readOnly","nativeSourceHandler","canHandleSource","guessMimeType","ext","getFileExtension","formats","video/flv","onReady","currSwf","getEl","checkReady","eventName","swfID","version","ActiveXObject","GetVariable","match","navigator","description","getEmbedCode","objTag","flashVarsString","paramsString","movie","flashvars","allowNetworking","_techJs2","_techJs","Html5","currentSrc","nodes","node","nodesLength","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","tt","handleTextTrackChange_","handleTextTrackAdd_","emulatedTt","clone","cloneNode","insertBefore","tagAttributes","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","setLoadstartFired","loadstartFired","triggerLoadstart","eventsToTrigger","handleTextTrackChange","srcElement","webkitEnterFullScreen","video","HAVE_METADATA","addRemoteTextTrack","removeTrack_","querySelectorAll","canPlayType","TEST_VID","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","canControlPlaybackRate","patchCanPlayType","ANDROID_VERSION","mpegurlRE","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","removeAttribute","MediaLoader","playerOptions","_tracksTextTrack2","_tracksTextTrack","Tech","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","trackProgress","stopTrackingProgress","numBufferedPercent","bufferedPercent","bufferedPercent_","manualProgress","manualProgressOff","_mediaErrorJs2","textTrackListChanges","emulateTextTracks","script","updateDisplay","mode","setPoster","createTrackHelper","featuresVolumeControl","featuresFullscreenResize","handlers","sourceHandlers","selectSourceHandler","can","srcObj","originalSeekable","sh","disposeSourceHandler","sourceHandler_","TextTrackCueList","IS_IE8","prop","setCues_","get","oldLength","length_","defineProp","getCueById","rule","darkGray","lightGray","fontMap","monospace","sansSerif","serif","TextTrackDisplay","toggleDisplay","clearDisplay","updateForTrack","_i","cueDiv","displayState","overrides","color","firstChild","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","height","top","bottom","fontFamily","fontVariant","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","trackEl","addedTrack","addCue","_eventTarget2","_eventTarget","TextTrackList","tracks_","change","removetrack","_event","rtrack","getTrackById","selectedOption","selectedOptions","selectedIndex","setSelectedOption","option","TextTrackSettings","persistTextTrackSettings","saveSettings","getValues","textEdge","getSelectedOptionValue","fgColor","bgColor","bgOpacity","setValues","values","restoreSettings","ttDisplay","registerComponent","_textTrackCueList2","_textTrackCueList","_utilsGuidJs","TextTrack","TextTrackEnum","TextTrackMode","cues_","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","loadTrack","cuechange","removeCue","removed","parseCues","srcContent","parser","crossOrigin","isCrossOrigin","_xhr2","responseBody","O","fromIndex","abs","searchElement","IS_IPHONE","IS_IPAD","USER_AGENT","IS_IPOD","IS_IOS","IOS_VERSION","IS_ANDROID","major","IS_NATIVE_ANDROID","bufferedDuration","_timeRangesJs","createTimeRange","_logJs2","_logJs","defaultBehaviors","messages","Proxy","_ret","handler","propName","_tsml2","_templateObject","getElData","elIdAttr","hasElData","removeElData","elData","element","classToRemove","hasElClass","attrName","attrValue","attrVal","knownBooleans","box","getBoundingClientRect","docEl","scrollLeft","pageXOffset","clientLeft","clientTop","scrollTop","pageYOffset","getPointerPosition","boxW","offsetWidth","boxH","offsetHeight","boxY","pageY","changedTouches","elem","_handleMultipleEvents","dispatcher","fixEvent","handlersCopy","m","isImmediatePropagationStopped","hash","removeType","_cleanUpEvents","elemData","parent","isPropagationStopped","defaultPrevented","targetData","disabled","old","relatedTarget","fromElement","toElement","returnValue","cancelBubble","returnTrue","returnFalse","stopImmediatePropagation","doc","clientY","detachEvent",120,"uid","h","floor","gm","guide","argsArray","console","log","history","unshift","_logType","mergeOptions",126,"createTimeRangesObj","ranges","getRange","rangeIndex","fnName","rangeCheck","createTimeRanges","href","addToBody","host","protocol","div","details","path","splitPathRe","pathParts","exec","urlInfo","parseUrl","_pluginsJs2","_pluginsJs","_tracksTextTrackJs","_utilsFormatTimeJs","_utilsCreateDeprecationProxyJs","_xhr","_techFlashJs","_techHtml5Js","getPlayers","_player2","_lodashCompatObjectMerge2","_merge"],"mappings":"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,4KA0BE,IAAAjB,GAAO,QAAYA,GAAQ8C,EAAAV,EAAAic,GACzB,GAAA5N,EAIF,IAAY,gBAAR3N,GAAqB,CAQrB,GALW,IAAbA,EAAI+Y,QAAS,OACX/Y,EAAAA,EAAA4R,MAAA,IAIA1U,EAAQuyC,aAAazvC,GAW1B,MARGV,6FAIAic,GACDre,EAAAuyC,aAAAzvC,GAAAub,MAAAA,GAGIre,EAAAuyC,aAAAzvC,wBAYP,KAAA2N,IAAAA,EAAAuQ,kFAOA,OAAKvQ,GAAa,QAAK,GAAE+hC,GAAK,WAAY/hC,EAAArO,EAAAic,gEAe5CwD,EAAMgO,EAAAC,mBAA6B,slBA6FnC9vB,EAAQ+oC,kBAAkBpsB,EAAA,WAAAosB,qLAwK1B,+BAAQ0J,EAAG,WAAOzyC,EAAAoC,QAAAqd,WAAAizB,KAAAA,EAAA9xC,GAAAqY,EAAAy5B,IAAA9xC,4RAyJjB,kBAAAnB,IAAAA,EAAA;AhIvgBD;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n","var isObject = require('../lang/isObject'),\n now = require('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","var debounce = require('./debounce'),\n isObject = require('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n","module.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n","var isFunction = require('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n","var trim = require('trim')\n , forEach = require('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}, attributes={}) {\n props = assign({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = assign({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n let el = super.createEl(tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
\n *
Button
\n *
\n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // ->
\n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
myButton
\n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech_\n && this.player().tech_['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file mouse-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport throttle from 'lodash-compat/function/throttle';\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\nclass MouseTimeDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update(0, 0);\n\n player.on('ready', () => {\n this.on(player.controlBar.progressControl.el(), 'mousemove', throttle(Fn.bind(this, this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-mouse-display'\n });\n }\n\n handleMouseMove(event) {\n let duration = this.player_.duration();\n let newTime = this.calculateDistance(event) * duration;\n let position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n }\n\n update(newTime, position) {\n let time = formatTime(newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n }\n\n calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n }\n}\n\nComponent.registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexport default MouseTimeDisplay;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\nimport MouseTimeDisplay from './mouse-time-display.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: [\n 'seekBar'\n ]\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport assign from 'object.assign';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: [\n 'loadProgressBar',\n 'mouseTimeDisplay',\n 'playProgressBar'\n ],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl({\n className: this.buildCSSClass(),\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00',\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: `${this.localize('Duration Time')} 0:00`\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: `${this.localize('Remaining Time')} -0:00`,\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
/
'\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: [\n 'volumeLevel'\n ],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: [\n 'volumeBar'\n ]\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function(){\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function(){\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vb = new VolumeBar(this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
  • `\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n createEl(type, props, attrs) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech_) { this.tech_.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n }\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n handleTechProgress_() {\n this.trigger('progress');\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n handleTechTap_() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n handleTechTouchMove_() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n handleStageClick_() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n handleTechError_() {\n let error = this.tech_.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n handleTechSuspend_() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n handleTechAbort_() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n handleTechEmptied_() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n handleTechStalled_() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n handleTechLoadedData_() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n handleTechRateChange_() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n handleTechVolumeChange_() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName_} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName_} playback technology element.`, e);\n this.tech_.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall_('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall_('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet_('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet_('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall_('setMuted', muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet_('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet_('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    `;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport { isCrossOrigin } from '../utils/url.js';\nimport XHR from 'xhr';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n let opts = {\n uri: src\n };\n\n let crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n XHR(opts, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\nimport log from './log.js';\nimport tsml from 'tsml';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}, attributes={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn(tsml`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 ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\nexport function getPointerPosition(el, event) {\n let position = {};\n let box = findElPosition(el);\n let boxW = el.offsetWidth;\n let boxH = el.offsetHeight;\n\n let boxY = box.top;\n let boxX = box.left;\n let pageY = event.pageY;\n let pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' &&\n key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","import log from './log.js';\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\nexport function createTimeRanges(start, end){\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexport { createTimeRanges as createTimeRange };\n\nfunction createTimeRangesObj(ranges){\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex){\n if (rangeIndex === undefined) {\n log.warn(`DEPRECATED: Function '${fnName}' on 'TimeRanges' called without an index argument.`);\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex){\n if (index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is greater than or equal to the maximum bound (${maxIndex}).`);\n }\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nexport const isCrossOrigin = function(url) {\n let urlInfo = parseUrl(url);\n let winLoc = window.location;\n\n // IE8 protocol relative urls will return ':' for protocol\n let srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n let crossOrigin = (srcProtocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n return crossOrigin;\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\nimport TextTrack from './tracks/text-track.js';\n\nimport assign from 'object.assign';\nimport { createTimeRanges } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendFn from './extend.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\nimport xhr from 'xhr';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = document.querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n `);\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = extendFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = xhr;\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = TextTrack;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n"]} \ No newline at end of file +{"version":3,"file":"video.novtt.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/date/now.js","node_modules/lodash-compat/function/debounce.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/function/throttle.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/hasSymbols.js","node_modules/object.assign/implementation.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/function-bind/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/object.assign/polyfill.js","node_modules/object.assign/shim.js","node_modules/safe-json-parse/tuple.js","node_modules/tsml/tsml.js","node_modules/xhr/index.js","node_modules/xhr/node_modules/once/once.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/node_modules/is-function/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/trim/index.js","node_modules/xhr/node_modules/parse-headers/parse-headers.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/mouse-time-display.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extend.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"getNative","nativeNow","Date","now","getTime","../internal/getNative",5,"debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject",6,"restParam","start","index","rest","Array","otherArgs",7,"throttle","./debounce",8,"arrayCopy","source","array",9,"arrayEach","iteratee",10,"baseCopy","props","object","key",11,"createBaseFor","baseFor","./createBaseFor",12,"baseForIn","keysIn","../object/keysIn","./baseFor",13,"baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",14,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",15,"toObject","baseProperty","./toObject",16,"bindCallback","argCount","identity","collection","accumulator","other","../utility/identity",17,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",18,"fromRight","keysFunc","iterable",19,"getLength","./baseProperty",20,"isNative","../lang/isNative",21,"isLength","./getLength","./isLength",22,"isHostObject","Object","toString",23,"reIsUint","test","MAX_SAFE_INTEGER","isIndex",24,"type","./isIndex",25,26,27,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",28,"support","unindexedChars","charAt","../support",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","objToString","nativeIsArray","../internal/isLength",31,"isFunction","funcTag","./isObject",32,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",33,34,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",35,"stringTag",36,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","enumPrototypes","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"arrayProto","splice","x","0","y","spliceObjects",42,43,"Symbol","getOwnPropertySymbols","iterator","obj","sym","getOwnPropertyNames","syms","descriptor","getOwnPropertyDescriptor","enumerable","object-keys",44,"bind","canBeObject","hasSymbols","propIsEnumerable","target","objTarget","./hasSymbols","function-bind",45,"defineProperties","implementation","getPolyfill","shim","./implementation","./polyfill","./shim","define-properties",46,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",47,"hasOwn","ctx","k",48,"ERROR_MESSAGE","slice","funcType","that","binder","bound","boundLength","boundArgs","join","Empty",49,"has","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$console","$frame","$frameElement","$frames","$parent","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",50,"str","callee",51,"assignHasPendingExceptions","assign","preventExtensions","thrower",52,"polyfill",53,"SafeParseTuple","reviver","json","error","err",54,"clean","sa",55,"isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","JSON","parse","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers",56,"called",57,"forEach","list","context","forEachArray","forEachString","forEachObject","len","string","is-function",58,"alert","confirm","prompt",59,"trim","right",60,"arg","split","row","indexOf","toLowerCase","Constructor","instance","player_","play","__esModule","newObj","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_interopRequireDefault","_component","Dom","_interopRequireWildcard","_utilsDomJs","Button","_Component","player","_classCallCheck","createEl","attributes","_objectAssign2","className","buildCSSClass","tabIndex","role","el","controlTextEl_","handleClick","default","_globalWindow2","_globalWindow","Fn","_utilsFnJs","Component","ready","options_","_utilsMergeOptionsJs2","id_","Guid","newGUID","el_","childIndex_","initChildren","dispose","trigger","bubbles","children_","childNameIndex_","off","_utilsLogJs2","warn","tagName","properties","localize","languages","language","primaryCode","addChild","child","component","componentName","childFound","parentOptions","_this","opts","children","_name","handleAdd","_this2","first","guid","cleanRemover","Events","on","second","third","nodeName","one","_this3","_arguments","newFunc","isReady_","triggerReady","readyQueue","readyQueue_","dimension","widthOrHeight","num","skipListeners","style","pxIndex","touchStart","touchTimeThreshold","couldBeTap","event","touches","firstTouch","xdiff","pageX","touchDistance","sqrt","ydiff","tapMovementThreshold","noTap","touchTime","preventDefault","clearInterval","touchHolding","touchEnd","report","disposeFn","intervalId","setInterval","interval","getComponent","components_","extend","subObj","_name2","ControlBar","exitFullscreen","requestFullscreen","LiveDisplay","contentEl_","aria-live","appendChild","updateShowing","_button2","_button","MuteToggle","_Button","update","tech_","addClass","vol","volume","level","toMute","muted","localizedMute","controlText","removeElClass","addElClass","PlayToggle","removeClass","_playbackRateMenuItemJs2","_playbackRateMenuItemJs","PlaybackRateMenuButton","_MenuButton","labelEl_","createMenu","rates","playbackRates","currentRate","playbackRate","newRate","playbackRateSupported","PlaybackRateMenuItem","label","rate","parseFloat","selected","LoadProgressBar","buffered","duration","percent","time","end","width","percentify","bufferedEnd","part","left","_componentJs2","_componentJs","MouseTimeDisplay","handleMouseMove","position","findElPosition","parentNode","newTime","_utilsFormatTimeJs2","calculateDistance","PlayProgressBar","updateDataAttr","scrubbing","getCache","currentTime","_loadProgressBarJs","SeekBar","_Slider","stepBack","CustomControlSpacer","_Spacer","CaptionSettingsMenuItem","_TextTrackMenuItem","kind","CaptionsButton","_TextTrackButton","threshold","createItems","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","_menuMenuJs2","_menuMenuJs","ChaptersButton","items","tracks","textTracks","track","kind_","cues","chaptersTrack","menu","contentEl","cue","mi","_menuMenuItemJs2","_menuMenuItemJs","ChaptersTrackMenuItem","_MenuItem","OffTextTrackMenuItem","handleTracksChange","SubtitlesButton","_menuMenuButtonJs2","_menuMenuButtonJs","TextTrackButton","hide","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","TextTrackMenuItem","onchange","Event","_globalDocument2","createEvent","CurrentTimeDisplay","innerHTML","updateContent","localizedText","DurationDisplay","formattedTime","RemainingTimeDisplay","_sliderSliderJs2","_sliderSliderJs","VolumeBar","toFixed","setAttribute","VolumeControl","VolumeMenuButton","updateVisibility","inline","vertical","volumeUpdate","orientationClass","contentElType","_muteToggleJs2","ErrorDisplay","message","_utilsEventsJs","EventTarget","allowedEvents_","ael","addEventListener","extendFn","subClassMethods","methods","init","_utilsLog2","FullscreenApi","apiMap","specApi","browserApi","_objectAssign","MediaError","errorTypes","_menuJs2","_menuJs","MenuButton","title","unlockShowing","handleKeyPress","which","buttonPressed_","unpressButton","pressButton","MenuItem","_selected","append","_globalDocument","_utilsLogJs","_utilsToTitleCaseJs2","_utilsToTitleCaseJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_errorDisplayJs","reportTouchActivity","languagesToLower","poster_","poster","controls","scrubbing_","playerOptionsCopy","plugins","isAudio","Player","players","styleEl_","removeChild","attrs","getElAttributes","attr","stylesheet","createStyleElement","defaultsStyleEl","querySelector","fluid","aspectRatio","initNetworkState_","networkState","privDimension","_dimension","parsedVal","isNaN","bool","fluid_","ratio","updateStyleEl_","aspectRatio_","videoWidth","videoHeight","ratioParts","ratioMultiplier","width_","height_","loadTech_","techName","unloadTech_","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","vtt.js","src","cache_","startTime","techComponent","handleTechReady_","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechSuspend_","handleTechAbort_","handleTechEmptied_","handleTechStalled_","handleTechLoadedData_","handleTechRateChange_","handleTechVolumeChange_","handleTechTextTrackChange_","usingNativeControls","techGet_","insertElFirst","addTechControlsListeners_","removeTechControlsListeners_","paused","hasStarted","_hasStarted","hasStarted_","handleTechClick_","button","techCall_","isScrubbing","seconds","percentAsDecimal","min","fsApi","fullscreenchange","documentFullscreenChange","isFullscreen","fullscreenElement","supportsFullScreen","_fullscreenApiJs2","fullWindowOnEscKey","exitFullWindow","documentElement","overflow","docOrigOverflow","selectSource","techOrder","tech","isSupported","b","canPlaySource","sourceList_","currentTech","load","sourceTech","controls_","error_","userActive","userActive_","stopPropagation","lastMoveX","lastMoveY","handleActivity","reportUserActivity","screenX","screenY","mouseInProgress","handleMouseUp","inactivityTimeout","userActivity_","tagOptions","dataSetup","_safeParseTuple","_safeJsonParseTuple2","hasChildNodes","childNodes","childName","baseOptions","notSupportedMessage","handleError_","flexNotSupported_","createElement","_buttonJs2","_buttonJs","PosterImage","setSrc","fallbackImg_","backgroundImage","autoSetup","vids","getElementsByTagName","audios","mediaEls","mediaEl","getAttribute","autoSetupTimeout","_windowLoaded","vjs","Slider","bar","getChild","barName","handleMouseDown","blockTextSelection","unblockTextSelection","progress","getPercent","percentage","vertical_","../component.js","../utils/dom.js","global/document","object.assign",108,"FlashRtmpDecorator","Flash","rtmp/mp4","rtmp/flv","streamFromParts","connection","stream","parts","streamBegin","connEnd","substring","isStreamingType","srcType","streamingFormats","isStreamingSrc","rtmpSourceHandler","handleSource","srcParts","_createSetter","attrUpper","toUpperCase","_api","val","_createGetter","vjs_getProperty","_tech2","_tech","_utilsUrlJs","setSource","_Tech","swf","objId","flashVars","readyFunction","errorEventProxyFunction","autoplay","params","wmode","bgcolor","Url","getAbsoluteURL","vjs_src","setCurrentTime","seekable","enterFullScreen","_readWrite","_readOnly","nativeSourceHandler","canHandleSource","guessMimeType","ext","getFileExtension","formats","video/flv","onReady","currSwf","getEl","checkReady","eventName","swfID","version","ActiveXObject","GetVariable","match","navigator","description","getEmbedCode","objTag","flashVarsString","paramsString","movie","flashvars","allowNetworking","_techJs2","_techJs","Html5","currentSrc","nodes","node","nodesLength","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","tt","handleTextTrackChange_","handleTextTrackAdd_","emulatedTt","clone","cloneNode","insertBefore","tagAttributes","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","setLoadstartFired","loadstartFired","triggerLoadstart","eventsToTrigger","handleTextTrackChange","srcElement","webkitEnterFullScreen","video","HAVE_METADATA","addRemoteTextTrack","removeTrack_","querySelectorAll","canPlayType","TEST_VID","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","canControlPlaybackRate","patchCanPlayType","ANDROID_VERSION","mpegurlRE","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","removeAttribute","MediaLoader","playerOptions","_tracksTextTrack2","_tracksTextTrack","Tech","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","trackProgress","stopTrackingProgress","numBufferedPercent","bufferedPercent","bufferedPercent_","manualProgress","manualProgressOff","_mediaErrorJs2","textTrackListChanges","emulateTextTracks","script","updateDisplay","mode","setPoster","createTrackHelper","featuresVolumeControl","featuresFullscreenResize","handlers","sourceHandlers","selectSourceHandler","can","srcObj","originalSeekable","sh","disposeSourceHandler","sourceHandler_","TextTrackCueList","IS_IE8","prop","setCues_","get","oldLength","length_","defineProp","getCueById","rule","darkGray","lightGray","fontMap","monospace","sansSerif","serif","TextTrackDisplay","toggleDisplay","clearDisplay","updateForTrack","_i","cueDiv","displayState","overrides","color","firstChild","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","height","top","bottom","fontFamily","fontVariant","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","trackEl","addedTrack","addCue","_eventTarget2","_eventTarget","TextTrackList","tracks_","change","removetrack","_event","rtrack","getTrackById","selectedOption","selectedOptions","selectedIndex","setSelectedOption","option","TextTrackSettings","persistTextTrackSettings","saveSettings","getValues","textEdge","getSelectedOptionValue","fgColor","bgColor","bgOpacity","setValues","values","restoreSettings","ttDisplay","registerComponent","_textTrackCueList2","_textTrackCueList","_utilsGuidJs","TextTrack","TextTrackEnum","TextTrackMode","cues_","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","loadTrack","cuechange","removeCue","removed","parseCues","srcContent","parser","crossOrigin","isCrossOrigin","_xhr2","responseBody","O","fromIndex","abs","searchElement","IS_IPHONE","IS_IPAD","USER_AGENT","IS_IPOD","IS_IOS","IOS_VERSION","IS_ANDROID","major","IS_NATIVE_ANDROID","bufferedDuration","_timeRangesJs","createTimeRange","_logJs2","_logJs","defaultBehaviors","messages","Proxy","_ret","handler","propName","_tsml2","_templateObject","getElData","elIdAttr","hasElData","removeElData","elData","element","classToRemove","hasElClass","attrName","attrValue","attrVal","knownBooleans","box","getBoundingClientRect","docEl","scrollLeft","pageXOffset","clientLeft","clientTop","scrollTop","pageYOffset","getPointerPosition","boxW","offsetWidth","boxH","offsetHeight","boxY","pageY","changedTouches","elem","_handleMultipleEvents","dispatcher","fixEvent","handlersCopy","m","isImmediatePropagationStopped","hash","removeType","_cleanUpEvents","elemData","parent","isPropagationStopped","defaultPrevented","targetData","disabled","old","relatedTarget","fromElement","toElement","returnValue","cancelBubble","returnTrue","returnFalse","stopImmediatePropagation","doc","clientY","detachEvent",125,"uid","h","floor","gm","guide","argsArray","console","log","history","unshift","_logType","mergeOptions",131,"createTimeRangesObj","ranges","getRange","rangeIndex","fnName","rangeCheck","createTimeRanges","href","addToBody","host","protocol","div","details","path","splitPathRe","pathParts","exec","urlInfo","parseUrl","_pluginsJs2","_pluginsJs","_tracksTextTrackJs","_utilsFormatTimeJs","_utilsCreateDeprecationProxyJs","_xhr","_techFlashJs","_techHtml5Js","getPlayers","_player2","_lodashCompatObjectMerge2","_merge"],"mappings":"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0C,aAAAnxC,wBAYP,KAAA2N,IAAAA,EAAAkS,kFAOA,OAAKlS,GAAa,QAAK,GAAEyjC,GAAK,WAAYzjC,EAAArO,EAAA6d,gEAe5CuD,EAAM+N,EAAAC,mBAA6B,slBA6FnCxxB,EAAQyqC,kBAAkBlsB,EAAA,WAAAksB,qLAwK1B,+BAAQ0J,EAAG,WAAOn0C,EAAAoC,QAAAif,WAAA+yB,KAAAA,EAAAxzC,GAAAka,EAAAs5B,IAAAxzC,4RAyJjB,kBAAAnB,IAAAA,EAAA;ArIvgBD;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;wBC3BmB,aAAa;;;;2BACV,gBAAgB;;;;;;;;;;;;;;IAWhC,aAAa;YAAb,aAAa;;AAEN,WAFP,aAAa,CAEL,MAAM,EAAE,OAAO,EAAE;0BAFzB,aAAa;;AAGf,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;GACxB;;;;;;;;;AAJG,eAAa,WAYjB,aAAa,GAAA,yBAAG;AACd,WAAO,qBAAqB,CAAC;GAC9B;;;;;;;;AAdG,eAAa,WAqBjB,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;GACrB;;SAvBG,aAAa;;;AA2BnB,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;;AAEpD,yBAAU,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;qBAC7C,aAAa;;;;;;;;;;;;;;;;;;;yBC1CN,aAAa;;;;0BACd,gBAAgB;;IAAzB,GAAG;;6BACS,mBAAmB;;IAA/B,MAAM;;yBACE,eAAe;;IAAvB,EAAE;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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n","var isObject = require('../lang/isObject'),\n now = require('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","var debounce = require('./debounce'),\n isObject = require('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\nvar keys = require('object-keys');\n\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tif (typeof sym === 'string') { return false; }\n\tif (sym instanceof Symbol) { return false; }\n\tobj[sym] = 42;\n\tfor (sym in obj) { return false; }\n\tif (keys(obj).length !== 0) { return false; }\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar bind = require('function-bind');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = require('./hasSymbols')();\nvar toObject = Object;\nvar push = bind.call(Function.call, Array.prototype.push);\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable(source, syms[i])) {\n\t\t\t\t\tpush(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\ndefineProperties(implementation, {\n\timplementation: implementation,\n\tgetPolyfill: getPolyfill,\n\tshim: shim\n});\n\nmodule.exports = implementation;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$console: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$parent: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\treturn !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tif (Object.assign !== polyfill) {\n\t\tdefine(Object, { assign: polyfill });\n\t}\n\treturn polyfill;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n","module.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n","var isFunction = require('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n","var trim = require('trim')\n , forEach = require('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}, attributes={}) {\n props = assign({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = assign({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n let el = super.createEl(tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
    \n *
    Button
    \n *
    \n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // ->
    \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
    myButton
    \n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech_\n && this.player().tech_['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file mouse-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport throttle from 'lodash-compat/function/throttle';\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\nclass MouseTimeDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update(0, 0);\n\n player.on('ready', () => {\n this.on(player.controlBar.progressControl.el(), 'mousemove', throttle(Fn.bind(this, this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-mouse-display'\n });\n }\n\n handleMouseMove(event) {\n let duration = this.player_.duration();\n let newTime = this.calculateDistance(event) * duration;\n let position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n }\n\n update(newTime, position) {\n let time = formatTime(newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n }\n\n calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n }\n}\n\nComponent.registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexport default MouseTimeDisplay;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\nimport MouseTimeDisplay from './mouse-time-display.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: [\n 'seekBar'\n ]\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport assign from 'object.assign';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: [\n 'loadProgressBar',\n 'mouseTimeDisplay',\n 'playProgressBar'\n ],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl({\n className: this.buildCSSClass(),\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00',\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: `${this.localize('Duration Time')} 0:00`\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: `${this.localize('Remaining Time')} -0:00`,\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
    /
    '\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: [\n 'volumeLevel'\n ],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: [\n 'volumeBar'\n ]\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function(){\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function(){\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vb = new VolumeBar(this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
  • `\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n createEl(type, props, attrs) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech_) { this.tech_.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n }\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n handleTechProgress_() {\n this.trigger('progress');\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n handleTechTap_() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n handleTechTouchMove_() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n handleStageClick_() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n handleTechError_() {\n let error = this.tech_.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n handleTechSuspend_() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n handleTechAbort_() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n handleTechEmptied_() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n handleTechStalled_() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n handleTechLoadedData_() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n handleTechRateChange_() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n handleTechVolumeChange_() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName_} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName_} playback technology element.`, e);\n this.tech_.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall_('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall_('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet_('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet_('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall_('setMuted', muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet_('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet_('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    `;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport { isCrossOrigin } from '../utils/url.js';\nimport XHR from 'xhr';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n let opts = {\n uri: src\n };\n\n let crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n XHR(opts, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\nimport log from './log.js';\nimport tsml from 'tsml';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}, attributes={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn(tsml`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 ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\nexport function getPointerPosition(el, event) {\n let position = {};\n let box = findElPosition(el);\n let boxW = el.offsetWidth;\n let boxH = el.offsetHeight;\n\n let boxY = box.top;\n let boxX = box.left;\n let pageY = event.pageY;\n let pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' &&\n key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","import log from './log.js';\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\nexport function createTimeRanges(start, end){\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexport { createTimeRanges as createTimeRange };\n\nfunction createTimeRangesObj(ranges){\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex){\n if (rangeIndex === undefined) {\n log.warn(`DEPRECATED: Function '${fnName}' on 'TimeRanges' called without an index argument.`);\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex){\n if (index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is greater than or equal to the maximum bound (${maxIndex}).`);\n }\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nexport const isCrossOrigin = function(url) {\n let urlInfo = parseUrl(url);\n let winLoc = window.location;\n\n // IE8 protocol relative urls will return ':' for protocol\n let srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n let crossOrigin = (srcProtocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n return crossOrigin;\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\nimport TextTrack from './tracks/text-track.js';\n\nimport assign from 'object.assign';\nimport { createTimeRanges } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendFn from './extend.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\nimport xhr from 'xhr';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = document.querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n `);\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = extendFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = xhr;\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = TextTrack;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n"]} \ No newline at end of file diff --git a/ennstatus/static/js/video.js/dist/video-js-5.0.0.zip b/ennstatus/static/js/video.js/dist/video-js-5.0.0.zip deleted file mode 100644 index 858d647378e880b52caf3f93251b6b96910a68f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 z 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

    69xsXz!HQ3jW(Xv1iGjmS$5Xzspfc<{8X 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

    GEXZ9X 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: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%0A=iVl)yYu}zZ0Cf!+SscNG~k%*qk5q$y*1!#0898 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

    Gr^vjc(IkCSI8S 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±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%0D_wW4i;MT=;_-&1C)GbTE?VEMB+gb` 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

    0N(bxKrGnK|2rn_jcSuc2b#Y&CnKsn=*B%ksIE+ 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 Ry8!?D%m?5=n!E(R{x=zFb6)@e diff --git a/ennstatus/static/js/video.js/dist/video.js b/ennstatus/static/js/video.js/dist/video.js --- a/ennstatus/static/js/video.js/dist/video.js +++ b/ennstatus/static/js/video.js/dist/video.js @@ -1,6 +1,6 @@ /** * @license - * Video.js 5.0.0 + * Video.js 5.0.2 * Copyright Brightcove, Inc. * Available under Apache License Version 2.0 * @@ -1777,18 +1777,51 @@ module.exports = identity; },{}],43:[function(_dereq_,module,exports){ 'use strict'; +var keys = _dereq_('object-keys'); + +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + if (typeof sym === 'string') { return false; } + if (sym instanceof Symbol) { return false; } + obj[sym] = 42; + for (sym in obj) { return false; } + if (keys(obj).length !== 0) { return false; } + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; } + } + + return true; +}; + +},{"object-keys":49}],44:[function(_dereq_,module,exports){ +'use strict'; + // modified from https://github.com/es-shims/es6-shim var keys = _dereq_('object-keys'); +var bind = _dereq_('function-bind'); var canBeObject = function (obj) { return typeof obj !== 'undefined' && obj !== null; }; -var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol'; -var defineProperties = _dereq_('define-properties'); +var hasSymbols = _dereq_('./hasSymbols')(); var toObject = Object; -var push = Array.prototype.push; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -var assignShim = function assign(target, source1) { +var push = bind.call(Function.call, Array.prototype.push); +var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); + +module.exports = function assign(target, source1) { if (!canBeObject(target)) { throw new TypeError('target must be an object'); } var objTarget = toObject(target); var s, source, i, props, syms; @@ -1798,8 +1831,8 @@ var assignShim = function assign(target, if (hasSymbols && Object.getOwnPropertySymbols) { syms = Object.getOwnPropertySymbols(source); for (i = 0; i < syms.length; ++i) { - if (propIsEnumerable.call(source, syms[i])) { - push.call(props, syms[i]); + if (propIsEnumerable(source, syms[i])) { + push(props, syms[i]); } } } @@ -1810,33 +1843,24 @@ var assignShim = function assign(target, return objTarget; }; -defineProperties(assignShim, { - shim: function shimObjectAssign() { - var assignHasPendingExceptions = function () { - if (!Object.assign || !Object.preventExtensions) { - return false; - } - // Firefox 37 still has "pending exception" logic in its Object.assign implementation, - // which is 72% slower than our shim, and Firefox 40's native implementation. - var thrower = Object.preventExtensions({ 1: 2 }); - try { - Object.assign(thrower, 'xy'); - } catch (e) { - return thrower[1] === 'y'; - } - }; - defineProperties( - Object, - { assign: assignShim }, - { assign: assignHasPendingExceptions } - ); - return Object.assign || assignShim; - } +},{"./hasSymbols":43,"function-bind":48,"object-keys":49}],45:[function(_dereq_,module,exports){ +'use strict'; + +var defineProperties = _dereq_('define-properties'); + +var implementation = _dereq_('./implementation'); +var getPolyfill = _dereq_('./polyfill'); +var shim = _dereq_('./shim'); + +defineProperties(implementation, { + implementation: implementation, + getPolyfill: getPolyfill, + shim: shim }); -module.exports = assignShim; - -},{"define-properties":44,"object-keys":46}],44:[function(_dereq_,module,exports){ +module.exports = implementation; + +},{"./implementation":44,"./polyfill":51,"./shim":52,"define-properties":46}],46:[function(_dereq_,module,exports){ 'use strict'; var keys = _dereq_('object-keys'); @@ -1852,10 +1876,10 @@ var isFunction = function (fn) { var arePropertyDescriptorsSupported = function () { var obj = {}; try { - Object.defineProperty(obj, 'x', { value: obj, enumerable: false }); - /* eslint-disable no-unused-vars */ + Object.defineProperty(obj, 'x', { enumerable: false, value: obj }); + /* eslint-disable no-unused-vars, no-restricted-syntax */ for (var _ in obj) { return false; } - /* eslint-enable no-unused-vars */ + /* eslint-enable no-unused-vars, no-restricted-syntax */ return obj.x === obj; } catch (e) { /* this is IE 8. */ return false; @@ -1871,8 +1895,8 @@ var defineProperty = function (object, n Object.defineProperty(object, name, { configurable: true, enumerable: false, - writable: true, - value: value + value: value, + writable: true }); } else { object[name] = value; @@ -1894,7 +1918,7 @@ defineProperties.supportsDescriptors = ! module.exports = defineProperties; -},{"foreach":45,"object-keys":46}],45:[function(_dereq_,module,exports){ +},{"foreach":47,"object-keys":49}],47:[function(_dereq_,module,exports){ var hasOwn = Object.prototype.hasOwnProperty; var toString = Object.prototype.toString; @@ -1918,7 +1942,57 @@ module.exports = function forEach (obj, }; -},{}],46:[function(_dereq_,module,exports){ +},{}],48:[function(_dereq_,module,exports){ +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var slice = Array.prototype.slice; +var toStr = Object.prototype.toString; +var funcType = '[object Function]'; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + } + }; + + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push('$' + i); + } + + var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; + + +},{}],49:[function(_dereq_,module,exports){ 'use strict'; // modified from https://github.com/es-shims/es5-shim @@ -1926,7 +2000,7 @@ var has = Object.prototype.hasOwnPropert var toStr = Object.prototype.toString; var slice = Array.prototype.slice; var isArgs = _dereq_('./isArguments'); -var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString'); +var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'); var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype'); var dontEnums = [ 'toString', @@ -1942,31 +2016,37 @@ var equalsConstructorPrototype = functio return ctor && ctor.prototype === o; }; var blacklistedKeys = { - $window: true, $console: true, + $frame: true, + $frameElement: true, + $frames: true, $parent: true, $self: true, - $frames: true, $webkitIndexedDB: true, - $webkitStorageInfo: true + $webkitStorageInfo: true, + $window: true }; var hasAutomationEqualityBug = (function () { /* global window */ if (typeof window === 'undefined') { return false; } for (var k in window) { - if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; + try { + if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { + try { + equalsConstructorPrototype(window[k]); + } catch (e) { + return true; + } } + } catch (e) { + return true; } } return false; }()); var equalsConstructorPrototypeIfNotBuggy = function (o) { /* global window */ - if (typeof window === 'undefined' && !hasAutomationEqualityBug) { + if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(o); } try { @@ -2019,9 +2099,7 @@ var keysShim = function keys(object) { }; keysShim.shim = function shimObjectKeys() { - if (!Object.keys) { - Object.keys = keysShim; - } else { + if (Object.keys) { var keysWorksWithArguments = (function () { // Safari 5.0 bug return (Object.keys(arguments) || '').length === 2; @@ -2036,13 +2114,15 @@ keysShim.shim = function shimObjectKeys( } }; } + } else { + Object.keys = keysShim; } return Object.keys || keysShim; }; module.exports = keysShim; -},{"./isArguments":47}],47:[function(_dereq_,module,exports){ +},{"./isArguments":50}],50:[function(_dereq_,module,exports){ 'use strict'; var toStr = Object.prototype.toString; @@ -2061,7 +2141,44 @@ module.exports = function isArguments(va return isArgs; }; -},{}],48:[function(_dereq_,module,exports){ +},{}],51:[function(_dereq_,module,exports){ +'use strict'; + +var implementation = _dereq_('./implementation'); + +var assignHasPendingExceptions = function () { + if (!Object.assign || !Object.preventExtensions) { + return false; + } + // Firefox 37 still has "pending exception" logic in its Object.assign implementation, + // which is 72% slower than our shim, and Firefox 40's native implementation. + var thrower = Object.preventExtensions({ 1: 2 }); + try { + Object.assign(thrower, 'xy'); + } catch (e) { + return thrower[1] === 'y'; + } +}; + +module.exports = function getPolyfill() { + return !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign; +}; + +},{"./implementation":44}],52:[function(_dereq_,module,exports){ +'use strict'; + +var define = _dereq_('define-properties'); +var getPolyfill = _dereq_('./polyfill'); + +module.exports = function shimAssign() { + var polyfill = getPolyfill(); + if (Object.assign !== polyfill) { + define(Object, { assign: polyfill }); + } + return polyfill; +}; + +},{"./polyfill":51,"define-properties":46}],53:[function(_dereq_,module,exports){ module.exports = SafeParseTuple function SafeParseTuple(obj, reviver) { @@ -2077,7 +2194,7 @@ function SafeParseTuple(obj, reviver) { return [error, json] } -},{}],49:[function(_dereq_,module,exports){ +},{}],54:[function(_dereq_,module,exports){ function clean (s) { return s.replace(/\n\r?\s*/g, '') } @@ -2092,7 +2209,7 @@ module.exports = function tsml (sa) { return s } -},{}],50:[function(_dereq_,module,exports){ +},{}],55:[function(_dereq_,module,exports){ "use strict"; var window = _dereq_("global/window") var once = _dereq_("once") @@ -2283,7 +2400,7 @@ function createXHR(options, callback) { function noop() {} -},{"global/window":2,"once":51,"parse-headers":55}],51:[function(_dereq_,module,exports){ +},{"global/window":2,"once":56,"parse-headers":60}],56:[function(_dereq_,module,exports){ module.exports = once once.proto = once(function () { @@ -2304,7 +2421,7 @@ function once (fn) { } } -},{}],52:[function(_dereq_,module,exports){ +},{}],57:[function(_dereq_,module,exports){ var isFunction = _dereq_('is-function') module.exports = forEach @@ -2352,7 +2469,7 @@ function forEachObject(object, iterator, } } -},{"is-function":53}],53:[function(_dereq_,module,exports){ +},{"is-function":58}],58:[function(_dereq_,module,exports){ module.exports = isFunction var toString = Object.prototype.toString @@ -2369,7 +2486,7 @@ function isFunction (fn) { fn === window.prompt)) }; -},{}],54:[function(_dereq_,module,exports){ +},{}],59:[function(_dereq_,module,exports){ exports = module.exports = trim; @@ -2385,7 +2502,7 @@ exports.right = function(str){ return str.replace(/\s*$/, ''); }; -},{}],55:[function(_dereq_,module,exports){ +},{}],60:[function(_dereq_,module,exports){ var trim = _dereq_('trim') , forEach = _dereq_('for-each') , isArray = function(arg) { @@ -2417,7 +2534,7 @@ module.exports = function (headers) { return result } -},{"for-each":52,"trim":54}],56:[function(_dereq_,module,exports){ +},{"for-each":57,"trim":59}],61:[function(_dereq_,module,exports){ /** * @file big-play-button.js */ @@ -2488,7 +2605,7 @@ BigPlayButton.prototype.controlText_ = ' exports['default'] = BigPlayButton; module.exports = exports['default']; -},{"./button.js":57,"./component.js":58}],57:[function(_dereq_,module,exports){ +},{"./button.js":62,"./component.js":63}],62:[function(_dereq_,module,exports){ /** * @file button.js */ @@ -2669,7 +2786,7 @@ var Button = (function (_Component) { exports['default'] = Button; module.exports = exports['default']; -},{"./component":58,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"global/document":1,"object.assign":43}],58:[function(_dereq_,module,exports){ +},{"./component":63,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"global/document":1,"object.assign":45}],63:[function(_dereq_,module,exports){ /** * @file component.js * @@ -4078,7 +4195,7 @@ Component.registerComponent('Component', exports['default'] = Component; module.exports = exports['default']; -},{"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/to-title-case.js":127,"global/window":2,"object.assign":43}],59:[function(_dereq_,module,exports){ +},{"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/to-title-case.js":132,"global/window":2,"object.assign":45}],64:[function(_dereq_,module,exports){ /** * @file control-bar.js */ @@ -4203,7 +4320,7 @@ ControlBar.prototype.options_ = { exports['default'] = ControlBar; module.exports = exports['default']; -},{"../component.js":58,"./fullscreen-toggle.js":60,"./live-display.js":61,"./mute-toggle.js":62,"./play-toggle.js":63,"./playback-rate-menu/playback-rate-menu-button.js":64,"./progress-control/progress-control.js":69,"./spacer-controls/custom-control-spacer.js":71,"./text-track-controls/captions-button.js":74,"./text-track-controls/chapters-button.js":75,"./text-track-controls/subtitles-button.js":78,"./time-controls/current-time-display.js":81,"./time-controls/duration-display.js":82,"./time-controls/remaining-time-display.js":83,"./time-controls/time-divider.js":84,"./volume-control/volume-control.js":86,"./volume-menu-button.js":88}],60:[function(_dereq_,module,exports){ +},{"../component.js":63,"./fullscreen-toggle.js":65,"./live-display.js":66,"./mute-toggle.js":67,"./play-toggle.js":68,"./playback-rate-menu/playback-rate-menu-button.js":69,"./progress-control/progress-control.js":74,"./spacer-controls/custom-control-spacer.js":76,"./text-track-controls/captions-button.js":79,"./text-track-controls/chapters-button.js":80,"./text-track-controls/subtitles-button.js":83,"./time-controls/current-time-display.js":86,"./time-controls/duration-display.js":87,"./time-controls/remaining-time-display.js":88,"./time-controls/time-divider.js":89,"./volume-control/volume-control.js":91,"./volume-menu-button.js":93}],65:[function(_dereq_,module,exports){ /** * @file fullscreen-toggle.js */ @@ -4277,7 +4394,7 @@ FullscreenToggle.prototype.controlText_ exports['default'] = FullscreenToggle; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58}],61:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63}],66:[function(_dereq_,module,exports){ /** * @file live-display.js */ @@ -4359,7 +4476,7 @@ var LiveDisplay = (function (_Component) exports['default'] = LiveDisplay; module.exports = exports['default']; -},{"../component":58,"../utils/dom.js":118}],62:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/dom.js":123}],67:[function(_dereq_,module,exports){ /** * @file mute-toggle.js */ @@ -4486,7 +4603,7 @@ MuteToggle.prototype.controlText_ = 'Mut exports['default'] = MuteToggle; module.exports = exports['default']; -},{"../button":57,"../component":58,"../utils/dom.js":118}],63:[function(_dereq_,module,exports){ +},{"../button":62,"../component":63,"../utils/dom.js":123}],68:[function(_dereq_,module,exports){ /** * @file play-toggle.js */ @@ -4587,7 +4704,7 @@ PlayToggle.prototype.controlText_ = 'Pla exports['default'] = PlayToggle; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58}],64:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63}],69:[function(_dereq_,module,exports){ /** * @file playback-rate-menu-button.js */ @@ -4788,7 +4905,7 @@ PlaybackRateMenuButton.prototype.control exports['default'] = PlaybackRateMenuButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-button.js":95,"../../menu/menu.js":97,"../../utils/dom.js":118,"./playback-rate-menu-item.js":65}],65:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-button.js":100,"../../menu/menu.js":102,"../../utils/dom.js":123,"./playback-rate-menu-item.js":70}],70:[function(_dereq_,module,exports){ /** * @file playback-rate-menu-item.js */ @@ -4869,7 +4986,7 @@ PlaybackRateMenuItem.prototype.contentEl exports['default'] = PlaybackRateMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96}],66:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101}],71:[function(_dereq_,module,exports){ /** * @file load-progress-bar.js */ @@ -4975,7 +5092,7 @@ var LoadProgressBar = (function (_Compon exports['default'] = LoadProgressBar; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118}],67:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123}],72:[function(_dereq_,module,exports){ /** * @file mouse-time-display.js */ @@ -5077,7 +5194,7 @@ var MouseTimeDisplay = (function (_Compo exports['default'] = MouseTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/format-time.js":121,"lodash-compat/function/throttle":7}],68:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/format-time.js":126,"lodash-compat/function/throttle":7}],73:[function(_dereq_,module,exports){ /** * @file play-progress-bar.js */ @@ -5152,7 +5269,7 @@ var PlayProgressBar = (function (_Compon exports['default'] = PlayProgressBar; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/fn.js":120,"../../utils/format-time.js":121}],69:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/fn.js":125,"../../utils/format-time.js":126}],74:[function(_dereq_,module,exports){ /** * @file progress-control.js */ @@ -5221,7 +5338,7 @@ ProgressControl.prototype.options_ = { exports['default'] = ProgressControl; module.exports = exports['default']; -},{"../../component.js":58,"./mouse-time-display.js":67,"./seek-bar.js":70}],70:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./mouse-time-display.js":72,"./seek-bar.js":75}],75:[function(_dereq_,module,exports){ /** * @file seek-bar.js */ @@ -5407,7 +5524,7 @@ SeekBar.prototype.playerEvent = 'timeupd exports['default'] = SeekBar; module.exports = exports['default']; -},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"../../utils/format-time.js":121,"./load-progress-bar.js":66,"./play-progress-bar.js":68,"object.assign":43}],71:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"../../utils/format-time.js":126,"./load-progress-bar.js":71,"./play-progress-bar.js":73,"object.assign":45}],76:[function(_dereq_,module,exports){ /** * @file custom-control-spacer.js */ @@ -5481,7 +5598,7 @@ var CustomControlSpacer = (function (_Sp exports['default'] = CustomControlSpacer; module.exports = exports['default']; -},{"../../component.js":58,"./spacer.js":72}],72:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./spacer.js":77}],77:[function(_dereq_,module,exports){ /** * @file spacer.js */ @@ -5548,7 +5665,7 @@ var Spacer = (function (_Component) { exports['default'] = Spacer; module.exports = exports['default']; -},{"../../component.js":58}],73:[function(_dereq_,module,exports){ +},{"../../component.js":63}],78:[function(_dereq_,module,exports){ /** * @file caption-settings-menu-item.js */ @@ -5614,7 +5731,7 @@ var CaptionSettingsMenuItem = (function exports['default'] = CaptionSettingsMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-menu-item.js":80}],74:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-menu-item.js":85}],79:[function(_dereq_,module,exports){ /** * @file captions-button.js */ @@ -5720,7 +5837,7 @@ CaptionsButton.prototype.controlText_ = exports['default'] = CaptionsButton; module.exports = exports['default']; -},{"../../component.js":58,"./caption-settings-menu-item.js":73,"./text-track-button.js":79}],75:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./caption-settings-menu-item.js":78,"./text-track-button.js":84}],80:[function(_dereq_,module,exports){ /** * @file chapters-button.js */ @@ -5909,7 +6026,7 @@ ChaptersButton.prototype.controlText_ = exports['default'] = ChaptersButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu.js":97,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/to-title-case.js":127,"./chapters-track-menu-item.js":76,"./text-track-button.js":79,"./text-track-menu-item.js":80,"global/window":2}],76:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu.js":102,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/to-title-case.js":132,"./chapters-track-menu-item.js":81,"./text-track-button.js":84,"./text-track-menu-item.js":85,"global/window":2}],81:[function(_dereq_,module,exports){ /** * @file chapters-track-menu-item.js */ @@ -5999,7 +6116,7 @@ var ChaptersTrackMenuItem = (function (_ exports['default'] = ChaptersTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96,"../../utils/fn.js":120}],77:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101,"../../utils/fn.js":125}],82:[function(_dereq_,module,exports){ /** * @file off-text-track-menu-item.js */ @@ -6079,7 +6196,7 @@ var OffTextTrackMenuItem = (function (_T exports['default'] = OffTextTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-menu-item.js":80}],78:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-menu-item.js":85}],83:[function(_dereq_,module,exports){ /** * @file subtitles-button.js */ @@ -6142,7 +6259,7 @@ SubtitlesButton.prototype.controlText_ = exports['default'] = SubtitlesButton; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-button.js":79}],79:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-button.js":84}],84:[function(_dereq_,module,exports){ /** * @file text-track-button.js */ @@ -6250,7 +6367,7 @@ var TextTrackButton = (function (_MenuBu exports['default'] = TextTrackButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-button.js":95,"../../utils/fn.js":120,"./off-text-track-menu-item.js":77,"./text-track-menu-item.js":80}],80:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-button.js":100,"../../utils/fn.js":125,"./off-text-track-menu-item.js":82,"./text-track-menu-item.js":85}],85:[function(_dereq_,module,exports){ /** * @file text-track-menu-item.js */ @@ -6399,7 +6516,7 @@ var TextTrackMenuItem = (function (_Menu exports['default'] = TextTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96,"../../utils/fn.js":120,"global/document":1,"global/window":2}],81:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101,"../../utils/fn.js":125,"global/document":1,"global/window":2}],86:[function(_dereq_,module,exports){ /** * @file current-time-display.js */ @@ -6493,7 +6610,7 @@ var CurrentTimeDisplay = (function (_Com exports['default'] = CurrentTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],82:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],87:[function(_dereq_,module,exports){ /** * @file duration-display.js */ @@ -6594,7 +6711,7 @@ var DurationDisplay = (function (_Compon exports['default'] = DurationDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],83:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],88:[function(_dereq_,module,exports){ /** * @file remaining-time-display.js */ @@ -6692,7 +6809,7 @@ var RemainingTimeDisplay = (function (_C exports['default'] = RemainingTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],84:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],89:[function(_dereq_,module,exports){ /** * @file time-divider.js */ @@ -6750,7 +6867,7 @@ var TimeDivider = (function (_Component) exports['default'] = TimeDivider; module.exports = exports['default']; -},{"../../component.js":58}],85:[function(_dereq_,module,exports){ +},{"../../component.js":63}],90:[function(_dereq_,module,exports){ /** * @file volume-bar.js */ @@ -6895,7 +7012,7 @@ VolumeBar.prototype.playerEvent = 'volum exports['default'] = VolumeBar; module.exports = exports['default']; -},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"./volume-level.js":87}],86:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"./volume-level.js":92}],91:[function(_dereq_,module,exports){ /** * @file volume-control.js */ @@ -6973,7 +7090,7 @@ VolumeControl.prototype.options_ = { exports['default'] = VolumeControl; module.exports = exports['default']; -},{"../../component.js":58,"./volume-bar.js":85}],87:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./volume-bar.js":90}],92:[function(_dereq_,module,exports){ /** * @file volume-level.js */ @@ -7030,7 +7147,7 @@ var VolumeLevel = (function (_Component) exports['default'] = VolumeLevel; module.exports = exports['default']; -},{"../../component.js":58}],88:[function(_dereq_,module,exports){ +},{"../../component.js":63}],93:[function(_dereq_,module,exports){ /** * @file volume-menu-button.js */ @@ -7192,7 +7309,7 @@ VolumeMenuButton.prototype.controlText_ exports['default'] = VolumeMenuButton; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"../menu/menu-button.js":95,"../menu/menu.js":97,"./mute-toggle.js":62,"./volume-control/volume-bar.js":85}],89:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"../menu/menu-button.js":100,"../menu/menu.js":102,"./mute-toggle.js":67,"./volume-control/volume-bar.js":90}],94:[function(_dereq_,module,exports){ /** * @file error-display.js */ @@ -7274,7 +7391,7 @@ var ErrorDisplay = (function (_Component exports['default'] = ErrorDisplay; module.exports = exports['default']; -},{"./component":58,"./utils/dom.js":118}],90:[function(_dereq_,module,exports){ +},{"./component":63,"./utils/dom.js":123}],95:[function(_dereq_,module,exports){ /** * @file event-target.js */ @@ -7333,7 +7450,7 @@ EventTarget.prototype.dispatchEvent = Ev exports['default'] = EventTarget; module.exports = exports['default']; -},{"./utils/events.js":119}],91:[function(_dereq_,module,exports){ +},{"./utils/events.js":124}],96:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -7424,7 +7541,7 @@ var extendFn = function extendFn(superCl exports['default'] = extendFn; module.exports = exports['default']; -},{"./utils/log":123}],92:[function(_dereq_,module,exports){ +},{"./utils/log":128}],97:[function(_dereq_,module,exports){ /** * @file fullscreen-api.js */ @@ -7481,7 +7598,7 @@ if (browserApi) { exports['default'] = FullscreenApi; module.exports = exports['default']; -},{"global/document":1}],93:[function(_dereq_,module,exports){ +},{"global/document":1}],98:[function(_dereq_,module,exports){ /** * @file loading-spinner.js */ @@ -7536,7 +7653,7 @@ var LoadingSpinner = (function (_Compone exports['default'] = LoadingSpinner; module.exports = exports['default']; -},{"./component":58}],94:[function(_dereq_,module,exports){ +},{"./component":63}],99:[function(_dereq_,module,exports){ /** * @file media-error.js */ @@ -7627,7 +7744,7 @@ for (var errNum = 0; errNum < MediaError exports['default'] = MediaError; module.exports = exports['default']; -},{"object.assign":43}],95:[function(_dereq_,module,exports){ +},{"object.assign":45}],100:[function(_dereq_,module,exports){ /** * @file menu-button.js */ @@ -7901,7 +8018,7 @@ var MenuButton = (function (_Button) { exports['default'] = MenuButton; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/to-title-case.js":127,"./menu.js":97}],96:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/to-title-case.js":132,"./menu.js":102}],101:[function(_dereq_,module,exports){ /** * @file menu-item.js */ @@ -7996,7 +8113,7 @@ var MenuItem = (function (_Button) { exports['default'] = MenuItem; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"object.assign":43}],97:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"object.assign":45}],102:[function(_dereq_,module,exports){ /** * @file menu.js */ @@ -8094,7 +8211,7 @@ var Menu = (function (_Component) { exports['default'] = Menu; module.exports = exports['default']; -},{"../component.js":58,"../utils/dom.js":118,"../utils/events.js":119,"../utils/fn.js":120}],98:[function(_dereq_,module,exports){ +},{"../component.js":63,"../utils/dom.js":123,"../utils/events.js":124,"../utils/fn.js":125}],103:[function(_dereq_,module,exports){ /** * @file player.js */ @@ -10947,7 +11064,7 @@ exports['default'] = Player; module.exports = exports['default']; // If empty string, make it a parsable json object. -},{"./big-play-button.js":56,"./component.js":58,"./control-bar/control-bar.js":59,"./error-display.js":89,"./fullscreen-api.js":92,"./loading-spinner.js":93,"./media-error.js":94,"./poster-image.js":100,"./tech/html5.js":105,"./tech/loader.js":106,"./tracks/text-track-display.js":109,"./tracks/text-track-list-converter.js":111,"./tracks/text-track-settings.js":113,"./utils/browser.js":115,"./utils/buffer.js":116,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/to-title-case.js":127,"global/document":1,"global/window":2,"object.assign":43,"safe-json-parse/tuple":48}],99:[function(_dereq_,module,exports){ +},{"./big-play-button.js":61,"./component.js":63,"./control-bar/control-bar.js":64,"./error-display.js":94,"./fullscreen-api.js":97,"./loading-spinner.js":98,"./media-error.js":99,"./poster-image.js":105,"./tech/html5.js":110,"./tech/loader.js":111,"./tracks/text-track-display.js":114,"./tracks/text-track-list-converter.js":116,"./tracks/text-track-settings.js":118,"./utils/browser.js":120,"./utils/buffer.js":121,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/to-title-case.js":132,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],104:[function(_dereq_,module,exports){ /** * @file plugins.js */ @@ -10975,7 +11092,7 @@ var plugin = function plugin(name, init) exports['default'] = plugin; module.exports = exports['default']; -},{"./player.js":98}],100:[function(_dereq_,module,exports){ +},{"./player.js":103}],105:[function(_dereq_,module,exports){ /** * @file poster-image.js */ @@ -11135,7 +11252,7 @@ var PosterImage = (function (_Button) { exports['default'] = PosterImage; module.exports = exports['default']; -},{"./button.js":57,"./component.js":58,"./utils/browser.js":115,"./utils/dom.js":118,"./utils/fn.js":120}],101:[function(_dereq_,module,exports){ +},{"./button.js":62,"./component.js":63,"./utils/browser.js":120,"./utils/dom.js":123,"./utils/fn.js":125}],106:[function(_dereq_,module,exports){ /** * @file setup.js * @@ -11245,7 +11362,7 @@ exports.autoSetup = autoSetup; exports.autoSetupTimeout = autoSetupTimeout; exports.hasLoaded = hasLoaded; -},{"./utils/events.js":119,"global/document":1,"global/window":2}],102:[function(_dereq_,module,exports){ +},{"./utils/events.js":124,"global/document":1,"global/window":2}],107:[function(_dereq_,module,exports){ /** * @file slider.js */ @@ -11524,7 +11641,7 @@ var Slider = (function (_Component) { exports['default'] = Slider; module.exports = exports['default']; -},{"../component.js":58,"../utils/dom.js":118,"global/document":1,"object.assign":43}],103:[function(_dereq_,module,exports){ +},{"../component.js":63,"../utils/dom.js":123,"global/document":1,"object.assign":45}],108:[function(_dereq_,module,exports){ /** * @file flash-rtmp.js */ @@ -11624,7 +11741,7 @@ function FlashRtmpDecorator(Flash) { exports['default'] = FlashRtmpDecorator; module.exports = exports['default']; -},{}],104:[function(_dereq_,module,exports){ +},{}],109:[function(_dereq_,module,exports){ /** * @file flash.js * VideoJS-SWF - Custom Flash Player with HTML5-ish API @@ -12229,7 +12346,7 @@ Flash.getEmbedCode = function (swf, flas exports['default'] = Flash; module.exports = exports['default']; -},{"../component":58,"../utils/dom.js":118,"../utils/time-ranges.js":126,"../utils/url.js":128,"./flash-rtmp":103,"./tech":107,"global/window":2,"object.assign":43}],105:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/dom.js":123,"../utils/time-ranges.js":131,"../utils/url.js":133,"./flash-rtmp":108,"./tech":112,"global/window":2,"object.assign":45}],110:[function(_dereq_,module,exports){ /** * @file html5.js * HTML5 Media Controller - Wrapper for HTML5 Media API @@ -13468,7 +13585,7 @@ Html5.disposeMediaElement = function (el exports['default'] = Html5; module.exports = exports['default']; -},{"../component":58,"../utils/browser.js":115,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/log.js":123,"../utils/merge-options.js":124,"../utils/url.js":128,"./tech.js":107,"global/document":1,"global/window":2,"object.assign":43}],106:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/browser.js":120,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/log.js":128,"../utils/merge-options.js":129,"../utils/url.js":133,"./tech.js":112,"global/document":1,"global/window":2,"object.assign":45}],111:[function(_dereq_,module,exports){ /** * @file loader.js */ @@ -13543,7 +13660,7 @@ var MediaLoader = (function (_Component) exports['default'] = MediaLoader; module.exports = exports['default']; -},{"../component":58,"../utils/to-title-case.js":127,"global/window":2}],107:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/to-title-case.js":132,"global/window":2}],112:[function(_dereq_,module,exports){ /** * @file tech.js * Media Technology Controller - Base class for media playback @@ -13648,7 +13765,7 @@ var Tech = (function (_Component) { } if (!this.featuresNativeTextTracks) { - this.emulateTextTracks(); + this.on('ready', this.emulateTextTracks); } this.initTextTrackListeners(); @@ -14222,7 +14339,7 @@ Tech.withSourceHandlers = function (_Tec exports['default'] = Tech; module.exports = exports['default']; -},{"../component":58,"../media-error.js":94,"../tracks/text-track":114,"../tracks/text-track-list":112,"../utils/buffer.js":116,"../utils/fn.js":120,"../utils/log.js":123,"../utils/time-ranges.js":126,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){ +},{"../component":63,"../media-error.js":99,"../tracks/text-track":119,"../tracks/text-track-list":117,"../utils/buffer.js":121,"../utils/fn.js":125,"../utils/log.js":128,"../utils/time-ranges.js":131,"global/document":1,"global/window":2}],113:[function(_dereq_,module,exports){ /** * @file text-track-cue-list.js */ @@ -14319,7 +14436,7 @@ TextTrackCueList.prototype.getCueById = exports['default'] = TextTrackCueList; module.exports = exports['default']; -},{"../utils/browser.js":115,"global/document":1}],109:[function(_dereq_,module,exports){ +},{"../utils/browser.js":120,"global/document":1}],114:[function(_dereq_,module,exports){ /** * @file text-track-display.js */ @@ -14590,7 +14707,7 @@ function tryUpdateStyle(el, style, rule) exports['default'] = TextTrackDisplay; module.exports = exports['default']; -},{"../component":58,"../menu/menu-button.js":95,"../menu/menu-item.js":96,"../menu/menu.js":97,"../utils/fn.js":120,"global/document":1,"global/window":2}],110:[function(_dereq_,module,exports){ +},{"../component":63,"../menu/menu-button.js":100,"../menu/menu-item.js":101,"../menu/menu.js":102,"../utils/fn.js":125,"global/document":1,"global/window":2}],115:[function(_dereq_,module,exports){ /** * @file text-track-enums.js * @@ -14623,7 +14740,7 @@ var TextTrackKind = { exports.TextTrackMode = TextTrackMode; exports.TextTrackKind = TextTrackKind; -},{}],111:[function(_dereq_,module,exports){ +},{}],116:[function(_dereq_,module,exports){ /** * Utilities for capturing text track state and re-creating tracks * based on a capture. @@ -14710,7 +14827,7 @@ var jsonToTextTracks = function jsonToTe exports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ }; module.exports = exports['default']; -},{}],112:[function(_dereq_,module,exports){ +},{}],117:[function(_dereq_,module,exports){ /** * @file text-track-list.js */ @@ -14855,7 +14972,7 @@ TextTrackList.prototype.getTrackById = f exports['default'] = TextTrackList; module.exports = exports['default']; -},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"global/document":1}],113:[function(_dereq_,module,exports){ +},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"global/document":1}],118:[function(_dereq_,module,exports){ /** * @file text-track-settings.js */ @@ -15147,7 +15264,7 @@ function captionOptionsMenuTemplate() { exports['default'] = TextTrackSettings; module.exports = exports['default']; -},{"../component":58,"../utils/events.js":119,"../utils/fn.js":120,"../utils/log.js":123,"global/window":2,"safe-json-parse/tuple":48}],114:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/events.js":124,"../utils/fn.js":125,"../utils/log.js":128,"global/window":2,"safe-json-parse/tuple":53}],119:[function(_dereq_,module,exports){ /** * @file text-track.js */ @@ -15500,7 +15617,7 @@ var indexOf = function indexOf(searchEle exports['default'] = TextTrack; module.exports = exports['default']; -},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"../utils/guid.js":122,"../utils/log.js":123,"../utils/url.js":128,"./text-track-cue-list":108,"./text-track-enums":110,"global/document":1,"global/window":2,"xhr":50}],115:[function(_dereq_,module,exports){ +},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"../utils/guid.js":127,"../utils/log.js":128,"../utils/url.js":133,"./text-track-cue-list":113,"./text-track-enums":115,"global/document":1,"global/window":2,"xhr":55}],120:[function(_dereq_,module,exports){ /** * @file browser.js */ @@ -15589,7 +15706,7 @@ exports.TOUCH_ENABLED = TOUCH_ENABLED; var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style); exports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED; -},{"global/document":1,"global/window":2}],116:[function(_dereq_,module,exports){ +},{"global/document":1,"global/window":2}],121:[function(_dereq_,module,exports){ /** * @file buffer.js */ @@ -15638,7 +15755,7 @@ function bufferedPercent(buffered, durat return bufferedDuration / duration; } -},{"./time-ranges.js":126}],117:[function(_dereq_,module,exports){ +},{"./time-ranges.js":131}],122:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -15709,7 +15826,7 @@ exports['default'] = function (target) { module.exports = exports['default']; -},{"./log.js":123}],118:[function(_dereq_,module,exports){ +},{"./log.js":128}],123:[function(_dereq_,module,exports){ /** * @file dom.js */ @@ -16142,7 +16259,7 @@ function getPointerPosition(el, event) { return position; } -},{"./guid.js":122,"./log.js":123,"global/document":1,"global/window":2,"tsml":49}],119:[function(_dereq_,module,exports){ +},{"./guid.js":127,"./log.js":128,"global/document":1,"global/window":2,"tsml":54}],124:[function(_dereq_,module,exports){ /** * @file events.js * @@ -16550,7 +16667,7 @@ function _handleMultipleEvents(fn, elem, }); } -},{"./dom.js":118,"./guid.js":122,"global/document":1,"global/window":2}],120:[function(_dereq_,module,exports){ +},{"./dom.js":123,"./guid.js":127,"global/document":1,"global/window":2}],125:[function(_dereq_,module,exports){ /** * @file fn.js */ @@ -16594,7 +16711,7 @@ var bind = function bind(context, fn, ui }; exports.bind = bind; -},{"./guid.js":122}],121:[function(_dereq_,module,exports){ +},{"./guid.js":127}],126:[function(_dereq_,module,exports){ /** * @file format-time.js * @@ -16644,7 +16761,7 @@ function formatTime(seconds) { exports['default'] = formatTime; module.exports = exports['default']; -},{}],122:[function(_dereq_,module,exports){ +},{}],127:[function(_dereq_,module,exports){ /** * @file guid.js * @@ -16669,7 +16786,7 @@ function newGUID() { return _guid++; } -},{}],123:[function(_dereq_,module,exports){ +},{}],128:[function(_dereq_,module,exports){ /** * @file log.js */ @@ -16759,7 +16876,7 @@ function _logType(type, args) { exports['default'] = log; module.exports = exports['default']; -},{"global/window":2}],124:[function(_dereq_,module,exports){ +},{"global/window":2}],129:[function(_dereq_,module,exports){ /** * @file merge-options.js */ @@ -16830,7 +16947,7 @@ function mergeOptions() { module.exports = exports['default']; -},{"lodash-compat/object/merge":40}],125:[function(_dereq_,module,exports){ +},{"lodash-compat/object/merge":40}],130:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -16858,7 +16975,7 @@ var setTextContent = function setTextCon }; exports.setTextContent = setTextContent; -},{"global/document":1}],126:[function(_dereq_,module,exports){ +},{"global/document":1}],131:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -16929,7 +17046,7 @@ function rangeCheck(fnName, index, maxIn } } -},{"./log.js":123}],127:[function(_dereq_,module,exports){ +},{"./log.js":128}],132:[function(_dereq_,module,exports){ /** * @file to-title-case.js * @@ -16950,7 +17067,7 @@ function toTitleCase(string) { exports["default"] = toTitleCase; module.exports = exports["default"]; -},{}],128:[function(_dereq_,module,exports){ +},{}],133:[function(_dereq_,module,exports){ /** * @file url.js */ @@ -17086,7 +17203,7 @@ var isCrossOrigin = function isCrossOrig }; exports.isCrossOrigin = isCrossOrigin; -},{"global/document":1,"global/window":2}],129:[function(_dereq_,module,exports){ +},{"global/document":1,"global/window":2}],134:[function(_dereq_,module,exports){ /** * @file video.js */ @@ -17281,7 +17398,7 @@ setup.autoSetupTimeout(1, videojs); * * @type {String} */ -videojs.VERSION = '5.0.0'; +videojs.VERSION = '5.0.2'; /** * The global options object. These are the settings that take effect @@ -17697,7 +17814,7 @@ if (typeof define === 'function' && defi exports['default'] = videojs; module.exports = exports['default']; -},{"../../src/js/utils/merge-options.js":124,"./component":58,"./event-target":90,"./extend.js":91,"./player":98,"./plugins.js":99,"./setup":101,"./tech/flash.js":104,"./tech/html5.js":105,"./tracks/text-track.js":114,"./utils/browser.js":115,"./utils/create-deprecation-proxy.js":117,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/format-time.js":121,"./utils/log.js":123,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/url.js":128,"global/document":1,"lodash-compat/object/merge":40,"object.assign":43,"xhr":50}]},{},[129])(129) +},{"../../src/js/utils/merge-options.js":129,"./component":63,"./event-target":95,"./extend.js":96,"./player":103,"./plugins.js":104,"./setup":106,"./tech/flash.js":109,"./tech/html5.js":110,"./tracks/text-track.js":119,"./utils/browser.js":120,"./utils/create-deprecation-proxy.js":122,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/format-time.js":126,"./utils/log.js":128,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/url.js":133,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,"xhr":55}]},{},[134])(134) }); diff --git a/ennstatus/static/js/video.js/dist/video.js.map b/ennstatus/static/js/video.js/dist/video.js.map --- a/ennstatus/static/js/video.js/dist/video.js.map +++ b/ennstatus/static/js/video.js/dist/video.js.map @@ -44,11 +44,16 @@ "node_modules/lodash-compat/object/merge.js", "node_modules/lodash-compat/support.js", "node_modules/lodash-compat/utility/identity.js", + "node_modules/object.assign/hasSymbols.js", + "node_modules/object.assign/implementation.js", "node_modules/object.assign/index.js", "node_modules/object.assign/node_modules/define-properties/index.js", "node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js", + "node_modules/object.assign/node_modules/function-bind/index.js", "node_modules/object.assign/node_modules/object-keys/index.js", "node_modules/object.assign/node_modules/object-keys/isArguments.js", + "node_modules/object.assign/polyfill.js", + "node_modules/object.assign/shim.js", "node_modules/safe-json-parse/tuple.js", "node_modules/tsml/tsml.js", "node_modules/xhr/index.js", @@ -133,7 +138,7 @@ "src/js/video.js" ], "names": [], - "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;wBC3BmB,aAAa;;;;2BACV,gBAAgB;;;;;;;;;;;;;;IAWhC,aAAa;YAAb,aAAa;;AAEN,WAFP,aAAa,CAEL,MAAM,EAAE,OAAO,EAAE;0BAFzB,aAAa;;AAGf,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", + "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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", "file": "generated.js", "sourceRoot": "", "sourcesContent": [ @@ -180,11 +185,16 @@ "var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n", "/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n", "/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n", - "'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n", - "'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", + "'use strict';\n\nvar keys = require('object-keys');\n\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tif (typeof sym === 'string') { return false; }\n\tif (sym instanceof Symbol) { return false; }\n\tobj[sym] = 42;\n\tfor (sym in obj) { return false; }\n\tif (keys(obj).length !== 0) { return false; }\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n", + "'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar bind = require('function-bind');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = require('./hasSymbols')();\nvar toObject = Object;\nvar push = bind.call(Function.call, Array.prototype.push);\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable(source, syms[i])) {\n\t\t\t\t\tpush(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n", + "'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\ndefineProperties(implementation, {\n\timplementation: implementation,\n\tgetPolyfill: getPolyfill,\n\tshim: shim\n});\n\nmodule.exports = implementation;\n", + "'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", "\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n", - "'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", + "var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n", + "'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$console: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$parent: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", "'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n", + "'use strict';\n\nvar implementation = require('./implementation');\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\treturn !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign;\n};\n", + "'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tif (Object.assign !== polyfill) {\n\t\tdefine(Object, { assign: polyfill });\n\t}\n\treturn polyfill;\n};\n", "module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n", "function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}", "\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n", @@ -244,7 +254,7 @@ "/**\n * @file flash.js\n * VideoJS-SWF - Custom Flash Player with HTML5-ish API\n * https://github.com/zencoder/video-js-swf\n * Not using setupTriggers. Using global onEvent func to distribute events\n */\n\nimport Tech from './tech';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport { createTimeRange } from '../utils/time-ranges.js';\nimport FlashRtmpDecorator from './flash-rtmp';\nimport Component from '../component';\nimport window from 'global/window';\nimport assign from 'object.assign';\n\nlet navigator = window.navigator;\n/**\n * Flash Media Controller - Wrapper for fallback SWF API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Flash\n */\nclass Flash extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n // Set the source when ready\n if (options.source) {\n this.ready(function(){\n this.setSource(options.source);\n }, true);\n }\n\n // Having issues with Flash reloading on certain page actions (hide/resize/fullscreen) in certain browsers\n // This allows resetting the playhead when we catch the reload\n if (options.startTime) {\n this.ready(function(){\n this.load();\n this.play();\n this.currentTime(options.startTime);\n }, true);\n }\n\n // Add global window functions that the swf expects\n // A 4.x workflow we weren't able to solve for in 5.0\n // because of the need to hard code these functions\n // into the swf for security reasons\n window.videojs = window.videojs || {};\n window.videojs.Flash = window.videojs.Flash || {};\n window.videojs.Flash.onReady = Flash.onReady;\n window.videojs.Flash.onEvent = Flash.onEvent;\n window.videojs.Flash.onError = Flash.onError;\n\n this.on('seeked', function() {\n this.lastSeekTarget_ = undefined;\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let options = this.options_;\n\n // If video.js is hosted locally you should also set the location\n // for the hosted swf, which should be relative to the page (not video.js)\n // Otherwise this adds a CDN url.\n // The CDN also auto-adds a swf URL for that specific version.\n if (!options.swf) {\n options.swf = '//vjs.zencdn.net/swf/__SWF_VERSION__/video-js.swf';\n }\n\n // Generate ID for swf object\n let objId = options.techId;\n\n // Merge default flashvars with ones passed in to init\n let flashVars = assign({\n\n // SWF Callback Functions\n 'readyFunction': 'videojs.Flash.onReady',\n 'eventProxyFunction': 'videojs.Flash.onEvent',\n 'errorEventProxyFunction': 'videojs.Flash.onError',\n\n // Player Settings\n 'autoplay': options.autoplay,\n 'preload': options.preload,\n 'loop': options.loop,\n 'muted': options.muted\n\n }, options.flashVars);\n\n // Merge default parames with ones passed in\n let params = assign({\n 'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance\n 'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading\n }, options.params);\n\n // Merge default attributes with ones passed in\n let attributes = assign({\n 'id': objId,\n 'name': objId, // Both ID and Name needed or swf to identify itself\n 'class': 'vjs-tech'\n }, options.attributes);\n\n this.el_ = Flash.embed(options.swf, flashVars, params, attributes);\n this.el_.tech = this;\n\n return this.el_;\n }\n\n /**\n * Play for flash tech\n *\n * @method play\n */\n play() {\n if (this.ended()) {\n this.setCurrentTime(0);\n }\n this.el_.vjs_play();\n }\n\n /**\n * Pause for flash tech\n *\n * @method pause\n */\n pause() {\n this.el_.vjs_pause();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.currentSrc();\n }\n\n // Setting src through `src` not `setSrc` will be deprecated\n return this.setSrc(src);\n }\n\n /**\n * Set video\n *\n * @param {Object=} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n // Make sure source URL is absolute.\n src = Url.getAbsoluteURL(src);\n this.el_.vjs_src(src);\n\n // Currently the SWF doesn't autoplay if you load a source later.\n // e.g. Load player w/ no source, wait 2s, set src.\n if (this.autoplay()) {\n var tech = this;\n this.setTimeout(function(){ tech.play(); }, 0);\n }\n }\n\n /**\n * Returns true if the tech is currently seeking.\n * @return {boolean} true if seeking\n */\n seeking() {\n return this.lastSeekTarget_ !== undefined;\n }\n\n /**\n * Set current time\n *\n * @param {Number} time Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(time) {\n let seekable = this.seekable();\n if (seekable.length) {\n // clamp to the current seekable range\n time = time > seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n", "/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n", "/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n", + "/**\n * @file tech.js\n * Media Technology Controller - Base class for media playback\n * technology controllers like Flash and HTML5\n */\n\nimport Component from '../component';\nimport TextTrack from '../tracks/text-track';\nimport TextTrackList from '../tracks/text-track-list';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport { createTimeRange } from '../utils/time-ranges.js';\nimport { bufferedPercent } from '../utils/buffer.js';\nimport MediaError from '../media-error.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Base class for media (HTML5 Video, Flash) controllers\n *\n * @param {Object=} options Options object\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Tech\n */\nclass Tech extends Component {\n\n constructor(options={}, ready=function(){}){\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n super(null, options, ready);\n\n // keep track of whether the current source has played at all to\n // implement a very limited played()\n this.hasStarted_ = false;\n this.on('playing', function() {\n this.hasStarted_ = true;\n });\n this.on('loadstart', function() {\n this.hasStarted_ = false;\n });\n\n this.textTracks_ = options.textTracks;\n\n // Manually track progress in cases where the browser/flash player doesn't report it.\n if (!this.featuresProgressEvents) {\n this.manualProgressOn();\n }\n\n // Manually track timeupdates in cases where the browser/flash player doesn't report it.\n if (!this.featuresTimeupdateEvents) {\n this.manualTimeUpdatesOn();\n }\n\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n this.featuresNativeTextTracks = false;\n }\n\n if (!this.featuresNativeTextTracks) {\n this.on('ready', this.emulateTextTracks);\n }\n\n this.initTextTrackListeners();\n\n // Turn on component tap events\n this.emitTapEvents();\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n }\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n }\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function(){\n // Don't trigger unless buffered amount is greater than last time\n\n let numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n onDurationChange() {\n this.duration_ = this.duration();\n }\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, 0);\n }\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }\n this.currentTimeInterval = this.setInterval(function(){\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n dispose() {\n // clear out text tracks because we can't reuse them between techs\n let textTracks = this.textTracks();\n\n if (textTracks) {\n let i = textTracks.length;\n while(i--) {\n this.removeRemoteTextTrack(textTracks[i]);\n }\n }\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) { this.manualProgressOff(); }\n\n if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }\n\n super.dispose();\n }\n\n /**\n * When invoked without an argument, returns a MediaError object\n * representing the current error state of the player or null if\n * there is no error. When invoked with an argument, set the current\n * error state of the player.\n * @param {MediaError=} err Optional an error object\n * @return {MediaError} the current error object or null\n * @method error\n */\n error(err) {\n if (err !== undefined) {\n if (err instanceof MediaError) {\n this.error_ = err;\n } else {\n this.error_ = new MediaError(err);\n }\n this.trigger('error');\n }\n return this.error_;\n }\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRange(0, 0);\n }\n return createTimeRange();\n }\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) { this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true }); }\n }\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n initTextTrackListeners() {\n let textTrackListChanges = Fn.bind(this, function() {\n this.trigger('texttrackchange');\n });\n\n let tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function() {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n }\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n emulateTextTracks() {\n if (!window['WebVTT'] && this.el().parentNode != null) {\n let script = document.createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n window['WebVTT'] = true;\n }\n\n let tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n let textTracksChanges = Fn.bind(this, function() {\n let updateDisplay = () => this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n", "/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n", "/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n", "/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n", diff --git a/ennstatus/static/js/video.js/dist/video.min.js b/ennstatus/static/js/video.js/dist/video.min.js --- a/ennstatus/static/js/video.js/dist/video.min.js +++ b/ennstatus/static/js/video.js/dist/video.min.js @@ -1,6 +1,6 @@ /** * @license - * Video.js 5.0.0 + * Video.js 5.0.2 * Copyright Brightcove, Inc. * Available under Apache License Version 2.0 * @@ -9,14 +9,14 @@ * Available under Apache License Version 2.0 * */ -!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||r||n||(m=q=void 0),o}var m,n,o,p,q,r,s,t=0,u=!1,v=!0;if("function"!=typeof a)throw new TypeError(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:45,"object-keys":46}],45:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],46:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$window:!0,$console:!0,$parent:!0,$self:!0,$frames:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window&&!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],48:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],49:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d0&&(o=setTimeout(function(){n=!0,l.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",i(a)},a.timeout)),l.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&l.setRequestHeader(m,s[m]);else if(a.headers&&!c(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(l.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(l),l.send(r),l}function e(){}var f=a("global/window"),g=a("once"),h=a("parse-headers");b.exports=d,d.XMLHttpRequest=f.XMLHttpRequest||e,d.XDomainRequest="withCredentials"in new d.XMLHttpRequest?d.XMLHttpRequest:f.XDomainRequest},{"global/window":2,once:51,"parse-headers":55}],51:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],52:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":53}],53:[function(a,b){function c(a){var b=d.call(a);return"[object Function]"===b||"function"==typeof a&&"[object RegExp]"!==b||"undefined"!=typeof window&&(a===window.setTimeout||a===window.alert||a===window.confirm||a===window.prompt)}b.exports=c;var d=Object.prototype.toString},{}],54:[function(a,b,c){function d(a){return a.replace(/^\s*|\s*$/g,"")}c=b.exports=d,c.left=function(a){return a.replace(/^\s*/,"")},c.right=function(a){return a.replace(/\s*$/,"")}},{}],55:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":52,trim:54}],56:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":57,"./component.js":58}],57:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=a("./utils/events.js"),m=d(l),n=a("./utils/fn.js"),o=d(n),p=a("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return g(b,a),b.prototype.createEl=function(){var b=arguments.length<=0||void 0===arguments[0]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":58,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"global/document":1,"object.assign":43}],58:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a("global/window"),h=e(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/guid.js"),n=d(m),o=a("./utils/events.js"),p=d(o),q=a("./utils/log.js"),r=e(q),s=a("./utils/to-title-case.js"),t=e(s),u=a("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=x["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b,c){return j.createEl(a,b,c)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(r["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions,a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"), -this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+t["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/to-title-case.js":127,"global/window":2,"object.assign":43}],59:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":58,"./fullscreen-toggle.js":60,"./live-display.js":61,"./mute-toggle.js":62,"./play-toggle.js":63,"./playback-rate-menu/playback-rate-menu-button.js":64,"./progress-control/progress-control.js":69,"./spacer-controls/custom-control-spacer.js":71,"./text-track-controls/captions-button.js":74,"./text-track-controls/chapters-button.js":75,"./text-track-controls/subtitles-button.js":78,"./time-controls/current-time-display.js":81,"./time-controls/duration-display.js":82,"./time-controls/remaining-time-display.js":83,"./time-controls/time-divider.js":84,"./volume-control/volume-control.js":86,"./volume-menu-button.js":88}],60:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":57,"../component.js":58}],61:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-live-display",innerHTML:''+this.localize("Stream Type")+""+this.localize("LIVE")},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateShowing=function(){this.player().duration()===1/0?this.show():this.hide()},b}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":58,"../utils/dom.js":118}],62:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":57,"../component":58,"../utils/dom.js":118}],63:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":57,"../component.js":58}],64:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;da){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu-button.js":95,"../../menu/menu.js":97,"../../utils/dom.js":118,"./playback-rate-menu-item.js":65}],65:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu-item.js":96}],66:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:''+this.localize("Loaded")+": 0%"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118}],67:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/fn.js"),m=d(l),n=a("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/format-time.js":121,"lodash-compat/function/throttle":7}],68:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/fn.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateDataAttr(),this.on(c,"timeupdate",this.updateDataAttr),c.ready(k.bind(this,this.updateDataAttr))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:''+this.localize("Progress")+": 0%"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/fn.js":120,"../../utils/format-time.js":121}],69:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),a("./mouse-time-display.js")),k=(d(j),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));k.prototype.options_={children:["seekBar"]},h["default"].registerComponent("ProgressControl",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./mouse-time-display.js":67,"./seek-bar.js":70}],70:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"../../utils/format-time.js":121,"./load-progress-bar.js":66,"./play-progress-bar.js":68,"object.assign":43}],71:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,{className:this.buildCSSClass()});return b.innerHTML=" ",b},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./spacer.js":72}],72:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],73:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-menu-item.js":80}],74:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech_&&this.player().tech_.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":58,"./caption-settings-menu-item.js":73,"./text-track-button.js":79}],75:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./text-track-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./text-track-menu-item.js"),m=e(l),n=a("./chapters-track-menu-item.js"),o=e(n),p=a("../../menu/menu.js"),q=e(p),r=a("../../utils/dom.js"),s=d(r),t=a("../../utils/fn.js"),u=d(t),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),this.el_.setAttribute("aria-label","Chapters Menu")}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu.js":97,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/to-title-case.js":127,"./chapters-track-menu-item.js":76,"./text-track-button.js":79,"./text-track-menu-item.js":80,"global/window":2}],76:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0, -configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-menu-item.js":80}],78:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-button.js":79}],79:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent Time 0:00'},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],82:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:''+this.localize("Duration Time")+" 0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],83:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:''+this.localize("Remaining Time")+" -0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],84:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"

    "})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],85:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"./volume-level.js":87}],86:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:["volumeBar"]},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":58,"./volume-bar.js":85}],87:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],88:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];e(this,b),void 0===f.inline&&(f.inline=!0),void 0===f.vertical&&(f.vertical=f.inline?!1:!0),f.volumeBar=f.volumeBar||{},f.volumeBar.vertical=!!f.vertical,a.call(this,c,f),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),d.call(this),this.on(c,"loadstart",d),this.on(this.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),this.on(this.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")})}return f(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"../menu/menu-button.js":95,"../menu/menu.js":97,"./mute-toggle.js":62,"./volume-control/volume-bar.js":85}],89:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":58,"./utils/dom.js":118}],90:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":119}],91:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":123}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["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"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/to-title-case.js":127,"./menu.js":97}],96:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c,d){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"object.assign":43}],97:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("../utils/fn.js"),m=d(l),n=a("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":58,"../utils/dom.js":118,"../utils/events.js":119,"../utils/fn.js":120}],98:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component.js"),i=e(h),j=a("global/document"),k=e(j),l=a("global/window"),m=e(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/dom.js"),q=d(p),r=a("./utils/fn.js"),s=d(r),t=a("./utils/guid.js"),u=d(t),v=a("./utils/browser.js"),w=(d(v), -a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,e),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&q.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive(!0),this.reportUserActivity(),this.listenForUserActivity_(),this.on("fullscreenchange",this.handleFullscreenChange_),this.on("stageclick",this.handleStageClick_)}return g(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.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(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=q.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(c.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(c.startTime=this.cache_.currentTime),this.cache_.src=b.src);var d=i["default"].getComponent(a);this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech_),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"canplay",this.handleTechCanPlay_),this.on(this.tech_,"canplaythrough",this.handleTechCanPlayThrough_),this.on(this.tech_,"playing",this.handleTechPlaying_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"seeked",this.handleTechSeeked_),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_,"progress",this.handleTechProgress_),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_,"suspend",this.handleTechSuspend_),this.on(this.tech_,"abort",this.handleTechAbort_),this.on(this.tech_,"emptied",this.handleTechEmptied_),this.on(this.tech_,"stalled",this.handleTechStalled_),this.on(this.tech_,"loadedmetadata",this.handleTechLoadedMetaData_),this.on(this.tech_,"loadeddata",this.handleTechLoadedData_),this.on(this.tech_,"timeupdate",this.handleTechTimeUpdate_),this.on(this.tech_,"ratechange",this.handleTechRateChange_),this.on(this.tech_,"volumechange",this.handleTechVolumeChange_),this.on(this.tech_,"texttrackchange",this.handleTechTextTrackChange_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===a&&this.tag||q.insertElFirst(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},b.prototype.unloadTech_=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.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_)},b.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_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting_=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress_=function(){this.trigger("progress")},b.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},b.prototype.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd_=function(a){a.preventDefault()},b.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick_=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange_=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError_=function(){var a=this.tech_.error();this.error(a&&a.code)},b.prototype.handleTechSuspend_=function(){this.trigger("suspend")},b.prototype.handleTechAbort_=function(){this.trigger("abort")},b.prototype.handleTechEmptied_=function(){this.trigger("emptied")},b.prototype.handleTechStalled_=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData_=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData_=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate_=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange_=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange_=function(){this.trigger("volumechange")},b.prototype.handleTechTextTrackChange_=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall_=function(a,b){if(this.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["default"](b),b}},b.prototype.play=function(){return this.techCall_("play"),this},b.prototype.pause=function(){return this.techCall_("pause"),this},b.prototype.paused=function(){return this.techGet_("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall_("setCurrentTime",a),this):this.cache_.currentTime=this.techGet_("currentTime")||0},b.prototype.duration=function(a){return void 0===a?this.cache_.duration||0:(a=parseFloat(a)||0,0>a&&(a=1/0),a!==this.cache_.duration&&(this.cache_.duration=a,a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange")),this)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.bufferedPercent(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall_("setVolume",b),this):(b=parseFloat(this.techGet_("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return void 0!==a?(this.techCall_("setMuted",a),this):this.techGet_("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=k["default"].documentElement.style.overflow,o.on(k["default"],"keydown",s.bind(this,this.fullWindowOnEscKey)),k["default"].documentElement.style.overflow="hidden",q.addElClass(k["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,o.off(k["default"],"keydown",this.fullWindowOnEscKey),k["default"].documentElement.style.overflow=this.docOrigOverflow,q.removeElClass(k["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall_("setPlaybackRate",a),this):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet_("networkState")},b.prototype.readyState=function(){return this.techGet_("readyState")},b.prototype.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},b.prototype.addTextTrack=function(a,b,c){return this.tech_&&this.tech_.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech_&&this.tech_.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(q.getElAttributes(k)):"track"===l&&b.tracks.push(q.getElAttributes(k))}return b},b}(i["default"]));Z.players={};var $=m["default"].navigator;Z.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings"],language:k["default"].getElementsByTagName("html")[0].getAttribute("lang")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData_,Z.prototype.handleLoadedData_,Z.prototype.handleUserActive_,Z.prototype.handleUserInactive_,Z.prototype.handleTimeUpdate_,Z.prototype.handleVolumeChange_,Z.prototype.handleError_,Z.prototype.flexNotSupported_=function(){var a=k["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},i["default"].registerComponent("Player",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":56,"./component.js":58,"./control-bar/control-bar.js":59,"./error-display.js":89,"./fullscreen-api.js":92,"./loading-spinner.js":93,"./media-error.js":94,"./poster-image.js":100,"./tech/html5.js":105,"./tech/loader.js":106,"./tracks/text-track-display.js":109,"./tracks/text-track-list-converter.js":111,"./tracks/text-track-settings.js":113,"./utils/browser.js":115,"./utils/buffer.js":116,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/to-title-case.js":127,"global/document":1,"global/window":2,"object.assign":43,"safe-json-parse/tuple":48}],99:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":98}],100:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./button.js"),i=e(h),j=a("./component.js"),k=e(j),l=a("./utils/fn.js"),m=d(l),n=a("./utils/dom.js"),o=d(n),p=a("./utils/browser.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),c.on("posterchange",m.bind(this,this.update))}return g(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=o.createEl("div",{className:"vjs-poster",tabIndex:-1});return q.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=o.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(i["default"]);k["default"].registerComponent("PosterImage",r),c["default"]=r,b.exports=c["default"]},{"./button.js":57,"./component.js":58,"./utils/browser.js":115,"./utils/dom.js":118,"./utils/fn.js":120}],101:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":119,"global/document":1,"global/window":2}],102:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),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(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return g(b,a),b.prototype.createEl=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return c.className=c.className+" vjs-slider",c=o["default"]({tabIndex:0},c),d=o["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},d),a.prototype.createEl.call(this,b,c,d)},b.prototype.handleMouseDown=function(a){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove),this.off(m["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":58,"../utils/dom.js":118,"global/document":1,"object.assign":43}],103:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],104:[function(a,b,c){ -"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=function(a){function b(c,d){f(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return g(b,a),b.prototype.createEl=function(){var a=this.options_;a.swf||(a.swf="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return void 0===a?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){if(a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":58,"../utils/dom.js":118,"../utils/time-ranges.js":126,"../utils/url.js":128,"./flash-rtmp":103,"./tech":107,"global/window":2,"object.assign":43}],105:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.setElAttributes(a,i)}return a},b.prototype.handleLateInit_=function(a){var b=this;if(0!==a.networkState&&3!==a.networkState){if(0===a.readyState){var c=function(){var a=!1,c=function(){a=!0};b.on("loadstart",c);var d=function(){a||this.trigger("loadstart")};return b.on("loadedmetadata",d),b.ready(function(){this.off("loadstart",c),this.off("loadedmetadata",d),a||this.trigger("loadstart")}),{v:void 0}}();if("object"==typeof c)return c.v}var d=["loadstart"];d.push("loadedmetadata"),a.readyState>=2&&d.push("loadeddata"),a.readyState>=3&&d.push("canplay"),a.readyState>=4&&d.push("canplaythrough"),this.ready(function(){d.forEach(function(a){this.trigger(a)},this)})}},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){s["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=y["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=w["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":58,"../utils/browser.js":115,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/log.js":123,"../utils/merge-options.js":124,"../utils/url.js":128,"./tech.js":107,"global/document":1,"global/window":2,"object.assign":43}],106:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component"),h=d(g),i=a("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;gb)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":115,"global/document":1}],109:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={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'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"global/document":1}],113:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function i(a,b){if(b){var c=void 0;for(c=0;c select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-family select"),"change",p.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:j()})},b.prototype.getValues=function(){var a=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?v["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):v["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(l["default"]);l["default"].registerComponent("TextTrackSettings",w),c["default"]=w,b.exports=c["default"]},{"../component":58,"../utils/events.js":119,"../utils/fn.js":120,"../utils/log.js":123,"global/window":2,"safe-json-parse/tuple":48}],114:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)b[c]=E.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return n;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function F(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){F(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void B(d,b))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"../utils/guid.js":122,"../utils/log.js":123,"../utils/url.js":128,"./text-track-cue-list":108,"./text-track-enums":110,"global/document":1,"global/window":2,xhr:50}],115:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/AppleWebKit\/([\d.]+)/i.exec(i),k=j?parseFloat(j.pop()):null,l=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=p;var q=/Android/i.test(i);c.IS_ANDROID=q;var r=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],116:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":126}],117:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":123}],118:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){return a.raw=b,a}function g(a){return 0===a.indexOf("#")&&(a=a.slice(1)),x["default"].getElementById(a)}function h(){var a=arguments.length<=0||void 0===arguments[0]?"div":arguments[0],b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],d=x["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(D["default"].warn(F["default"](v,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function i(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function j(a){var b=a[H];return b||(b=a[H]=B.newGUID()),G[b]||(G[b]={}),G[b]}function k(a){var b=a[H];return b?!!Object.getOwnPropertyNames(G[b]).length:!1}function l(a){var b=a[H];if(b){delete G[b];try{delete a[H]}catch(c){a.removeAttribute?a.removeAttribute(H):a[H]=null}}}function m(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function n(a,b){m(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function o(a,b){if(m(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1); +!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||r||n||(m=q=void 0),o}var m,n,o,p,q,r,s,t=0,u=!1,v=!0;if("function"!=typeof a)throw new TypeError(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:47,"object-keys":49}],47:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],48:[function(a,b){var c="Function.prototype.bind called on incompatible ",d=Array.prototype.slice,e=Object.prototype.toString,f="[object Function]";b.exports=function(a){var b=this;if("function"!=typeof b||e.call(b)!==f)throw new TypeError(c+b);for(var g=d.call(arguments,1),h=function(){if(this instanceof l){var c=b.apply(this,g.concat(d.call(arguments)));return Object(c)===c?c:this}return b.apply(a,g.concat(d.call(arguments)))},i=Math.max(0,b.length-g.length),j=[],k=0;i>k;k++)j.push("$"+k);var l=Function("binder","return function ("+j.join(",")+"){ return binder.apply(this,arguments); }")(h);if(b.prototype){var m=function(){};m.prototype=b.prototype,l.prototype=new m,m.prototype=null}return l}},{}],49:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$console:!0,$frame:!0,$frameElement:!0,$frames:!0,$parent:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)try{if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window||!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],51:[function(a,b){"use strict";var c=a("./implementation"),d=function(){if(!Object.assign||!Object.preventExtensions)return!1;var a=Object.preventExtensions({1:2});try{Object.assign(a,"xy")}catch(b){return"y"===a[1]}};b.exports=function(){return!Object.assign||d()?c:Object.assign}},{"./implementation":44}],52:[function(a,b){"use strict";var c=a("define-properties"),d=a("./polyfill");b.exports=function(){var a=d();return Object.assign!==a&&c(Object,{assign:a}),a}},{"./polyfill":51,"define-properties":46}],53:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],54:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d0&&(o=setTimeout(function(){n=!0,l.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",i(a)},a.timeout)),l.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&l.setRequestHeader(m,s[m]);else if(a.headers&&!c(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(l.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(l),l.send(r),l}function e(){}var f=a("global/window"),g=a("once"),h=a("parse-headers");b.exports=d,d.XMLHttpRequest=f.XMLHttpRequest||e,d.XDomainRequest="withCredentials"in new d.XMLHttpRequest?d.XMLHttpRequest:f.XDomainRequest},{"global/window":2,once:56,"parse-headers":60}],56:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],57:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":58}],58:[function(a,b){function c(a){var b=d.call(a);return"[object Function]"===b||"function"==typeof a&&"[object RegExp]"!==b||"undefined"!=typeof window&&(a===window.setTimeout||a===window.alert||a===window.confirm||a===window.prompt)}b.exports=c;var d=Object.prototype.toString},{}],59:[function(a,b,c){function d(a){return a.replace(/^\s*|\s*$/g,"")}c=b.exports=d,c.left=function(a){return a.replace(/^\s*/,"")},c.right=function(a){return a.replace(/\s*$/,"")}},{}],60:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":57,trim:59}],61:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":62,"./component.js":63}],62:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=a("./utils/events.js"),m=d(l),n=a("./utils/fn.js"),o=d(n),p=a("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return g(b,a),b.prototype.createEl=function(){var b=arguments.length<=0||void 0===arguments[0]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":63,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"global/document":1,"object.assign":45}],63:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a("global/window"),h=e(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/guid.js"),n=d(m),o=a("./utils/events.js"),p=d(o),q=a("./utils/log.js"),r=e(q),s=a("./utils/to-title-case.js"),t=e(s),u=a("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=x["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b,c){return j.createEl(a,b,c)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(r["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions, +a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+t["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/to-title-case.js":132,"global/window":2,"object.assign":45}],64:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":63,"./fullscreen-toggle.js":65,"./live-display.js":66,"./mute-toggle.js":67,"./play-toggle.js":68,"./playback-rate-menu/playback-rate-menu-button.js":69,"./progress-control/progress-control.js":74,"./spacer-controls/custom-control-spacer.js":76,"./text-track-controls/captions-button.js":79,"./text-track-controls/chapters-button.js":80,"./text-track-controls/subtitles-button.js":83,"./time-controls/current-time-display.js":86,"./time-controls/duration-display.js":87,"./time-controls/remaining-time-display.js":88,"./time-controls/time-divider.js":89,"./volume-control/volume-control.js":91,"./volume-menu-button.js":93}],65:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":62,"../component.js":63}],66:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-live-display",innerHTML:''+this.localize("Stream Type")+""+this.localize("LIVE")},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateShowing=function(){this.player().duration()===1/0?this.show():this.hide()},b}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":63,"../utils/dom.js":123}],67:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":62,"../component":63,"../utils/dom.js":123}],68:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":62,"../component.js":63}],69:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;da){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu-button.js":100,"../../menu/menu.js":102,"../../utils/dom.js":123,"./playback-rate-menu-item.js":70}],70:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu-item.js":101}],71:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:''+this.localize("Loaded")+": 0%"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123}],72:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/fn.js"),m=d(l),n=a("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/format-time.js":126,"lodash-compat/function/throttle":7}],73:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/fn.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateDataAttr(),this.on(c,"timeupdate",this.updateDataAttr),c.ready(k.bind(this,this.updateDataAttr))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:''+this.localize("Progress")+": 0%"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/fn.js":125,"../../utils/format-time.js":126}],74:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),a("./mouse-time-display.js")),k=(d(j),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));k.prototype.options_={children:["seekBar"]},h["default"].registerComponent("ProgressControl",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./mouse-time-display.js":72,"./seek-bar.js":75}],75:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"../../utils/format-time.js":126,"./load-progress-bar.js":71,"./play-progress-bar.js":73,"object.assign":45}],76:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,{className:this.buildCSSClass()});return b.innerHTML=" ",b},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./spacer.js":77}],77:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],78:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-menu-item.js":85}],79:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech_&&this.player().tech_.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":63,"./caption-settings-menu-item.js":78,"./text-track-button.js":84}],80:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./text-track-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./text-track-menu-item.js"),m=e(l),n=a("./chapters-track-menu-item.js"),o=e(n),p=a("../../menu/menu.js"),q=e(p),r=a("../../utils/dom.js"),s=d(r),t=a("../../utils/fn.js"),u=d(t),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=function(a){ +function b(c,d,e){f(this,b),a.call(this,c,d,e),this.el_.setAttribute("aria-label","Chapters Menu")}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu.js":102,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/to-title-case.js":132,"./chapters-track-menu-item.js":81,"./text-track-button.js":84,"./text-track-menu-item.js":85,"global/window":2}],81:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-menu-item.js":85}],83:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-button.js":84}],84:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent Time 0:00'},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],87:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:''+this.localize("Duration Time")+" 0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],88:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:''+this.localize("Remaining Time")+" -0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],89:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"
    /
    "})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],90:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"./volume-level.js":92}],91:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:["volumeBar"]},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":63,"./volume-bar.js":90}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],93:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];e(this,b),void 0===f.inline&&(f.inline=!0),void 0===f.vertical&&(f.vertical=f.inline?!1:!0),f.volumeBar=f.volumeBar||{},f.volumeBar.vertical=!!f.vertical,a.call(this,c,f),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),d.call(this),this.on(c,"loadstart",d),this.on(this.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),this.on(this.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")})}return f(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"../menu/menu-button.js":100,"../menu/menu.js":102,"./mute-toggle.js":67,"./volume-control/volume-bar.js":90}],94:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":63,"./utils/dom.js":123}],95:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":124}],96:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":128}],97:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["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"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/to-title-case.js":132,"./menu.js":102}],101:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c,d){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"object.assign":45}],102:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){ +if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("../utils/fn.js"),m=d(l),n=a("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":63,"../utils/dom.js":123,"../utils/events.js":124,"../utils/fn.js":125}],103:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component.js"),i=e(h),j=a("global/document"),k=e(j),l=a("global/window"),m=e(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/dom.js"),q=d(p),r=a("./utils/fn.js"),s=d(r),t=a("./utils/guid.js"),u=d(t),v=a("./utils/browser.js"),w=(d(v),a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,e),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&q.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive(!0),this.reportUserActivity(),this.listenForUserActivity_(),this.on("fullscreenchange",this.handleFullscreenChange_),this.on("stageclick",this.handleStageClick_)}return g(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.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(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=q.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(c.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(c.startTime=this.cache_.currentTime),this.cache_.src=b.src);var d=i["default"].getComponent(a);this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech_),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"canplay",this.handleTechCanPlay_),this.on(this.tech_,"canplaythrough",this.handleTechCanPlayThrough_),this.on(this.tech_,"playing",this.handleTechPlaying_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"seeked",this.handleTechSeeked_),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_,"progress",this.handleTechProgress_),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_,"suspend",this.handleTechSuspend_),this.on(this.tech_,"abort",this.handleTechAbort_),this.on(this.tech_,"emptied",this.handleTechEmptied_),this.on(this.tech_,"stalled",this.handleTechStalled_),this.on(this.tech_,"loadedmetadata",this.handleTechLoadedMetaData_),this.on(this.tech_,"loadeddata",this.handleTechLoadedData_),this.on(this.tech_,"timeupdate",this.handleTechTimeUpdate_),this.on(this.tech_,"ratechange",this.handleTechRateChange_),this.on(this.tech_,"volumechange",this.handleTechVolumeChange_),this.on(this.tech_,"texttrackchange",this.handleTechTextTrackChange_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===a&&this.tag||q.insertElFirst(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},b.prototype.unloadTech_=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.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_)},b.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_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting_=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress_=function(){this.trigger("progress")},b.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},b.prototype.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd_=function(a){a.preventDefault()},b.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick_=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange_=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError_=function(){var a=this.tech_.error();this.error(a&&a.code)},b.prototype.handleTechSuspend_=function(){this.trigger("suspend")},b.prototype.handleTechAbort_=function(){this.trigger("abort")},b.prototype.handleTechEmptied_=function(){this.trigger("emptied")},b.prototype.handleTechStalled_=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData_=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData_=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate_=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange_=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange_=function(){this.trigger("volumechange")},b.prototype.handleTechTextTrackChange_=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall_=function(a,b){if(this.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["default"](b),b}},b.prototype.play=function(){return this.techCall_("play"),this},b.prototype.pause=function(){return this.techCall_("pause"),this},b.prototype.paused=function(){return this.techGet_("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall_("setCurrentTime",a),this):this.cache_.currentTime=this.techGet_("currentTime")||0},b.prototype.duration=function(a){return void 0===a?this.cache_.duration||0:(a=parseFloat(a)||0,0>a&&(a=1/0),a!==this.cache_.duration&&(this.cache_.duration=a,a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange")),this)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.bufferedPercent(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall_("setVolume",b),this):(b=parseFloat(this.techGet_("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return void 0!==a?(this.techCall_("setMuted",a),this):this.techGet_("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=k["default"].documentElement.style.overflow,o.on(k["default"],"keydown",s.bind(this,this.fullWindowOnEscKey)),k["default"].documentElement.style.overflow="hidden",q.addElClass(k["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,o.off(k["default"],"keydown",this.fullWindowOnEscKey),k["default"].documentElement.style.overflow=this.docOrigOverflow,q.removeElClass(k["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall_("setPlaybackRate",a),this):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet_("networkState")},b.prototype.readyState=function(){return this.techGet_("readyState")},b.prototype.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},b.prototype.addTextTrack=function(a,b,c){return this.tech_&&this.tech_.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech_&&this.tech_.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(q.getElAttributes(k)):"track"===l&&b.tracks.push(q.getElAttributes(k))}return b},b}(i["default"]));Z.players={};var $=m["default"].navigator;Z.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings"],language:k["default"].getElementsByTagName("html")[0].getAttribute("lang")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData_,Z.prototype.handleLoadedData_,Z.prototype.handleUserActive_,Z.prototype.handleUserInactive_,Z.prototype.handleTimeUpdate_,Z.prototype.handleVolumeChange_,Z.prototype.handleError_,Z.prototype.flexNotSupported_=function(){var a=k["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},i["default"].registerComponent("Player",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":61,"./component.js":63,"./control-bar/control-bar.js":64,"./error-display.js":94,"./fullscreen-api.js":97,"./loading-spinner.js":98,"./media-error.js":99,"./poster-image.js":105,"./tech/html5.js":110,"./tech/loader.js":111,"./tracks/text-track-display.js":114,"./tracks/text-track-list-converter.js":116,"./tracks/text-track-settings.js":118,"./utils/browser.js":120,"./utils/buffer.js":121,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/to-title-case.js":132,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],104:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":103}],105:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./button.js"),i=e(h),j=a("./component.js"),k=e(j),l=a("./utils/fn.js"),m=d(l),n=a("./utils/dom.js"),o=d(n),p=a("./utils/browser.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),c.on("posterchange",m.bind(this,this.update))}return g(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=o.createEl("div",{className:"vjs-poster",tabIndex:-1});return q.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=o.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(i["default"]);k["default"].registerComponent("PosterImage",r),c["default"]=r,b.exports=c["default"]},{"./button.js":62,"./component.js":63,"./utils/browser.js":120,"./utils/dom.js":123,"./utils/fn.js":125}],106:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":124,"global/document":1,"global/window":2}],107:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),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(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return g(b,a),b.prototype.createEl=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return c.className=c.className+" vjs-slider",c=o["default"]({tabIndex:0},c),d=o["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},d),a.prototype.createEl.call(this,b,c,d)},b.prototype.handleMouseDown=function(a){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove), +this.off(m["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":63,"../utils/dom.js":123,"global/document":1,"object.assign":45}],108:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],109:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=function(a){function b(c,d){f(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return g(b,a),b.prototype.createEl=function(){var a=this.options_;a.swf||(a.swf="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return void 0===a?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){if(a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":63,"../utils/dom.js":123,"../utils/time-ranges.js":131,"../utils/url.js":133,"./flash-rtmp":108,"./tech":112,"global/window":2,"object.assign":45}],110:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.setElAttributes(a,i)}return a},b.prototype.handleLateInit_=function(a){var b=this;if(0!==a.networkState&&3!==a.networkState){if(0===a.readyState){var c=function(){var a=!1,c=function(){a=!0};b.on("loadstart",c);var d=function(){a||this.trigger("loadstart")};return b.on("loadedmetadata",d),b.ready(function(){this.off("loadstart",c),this.off("loadedmetadata",d),a||this.trigger("loadstart")}),{v:void 0}}();if("object"==typeof c)return c.v}var d=["loadstart"];d.push("loadedmetadata"),a.readyState>=2&&d.push("loadeddata"),a.readyState>=3&&d.push("canplay"),a.readyState>=4&&d.push("canplaythrough"),this.ready(function(){d.forEach(function(a){this.trigger(a)},this)})}},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){s["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=y["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=w["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":63,"../utils/browser.js":120,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/log.js":128,"../utils/merge-options.js":129,"../utils/url.js":133,"./tech.js":112,"global/document":1,"global/window":2,"object.assign":45}],111:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component"),h=d(g),i=a("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;gb)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":120,"global/document":1}],114:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={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'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"global/document":1}],118:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function i(a,b){if(b){var c=void 0;for(c=0;c select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-family select"),"change",p.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:j()})},b.prototype.getValues=function(){var a=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?v["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):v["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(l["default"]);l["default"].registerComponent("TextTrackSettings",w),c["default"]=w,b.exports=c["default"]},{"../component":63,"../utils/events.js":124,"../utils/fn.js":125,"../utils/log.js":128,"global/window":2,"safe-json-parse/tuple":53}],119:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)b[c]=E.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return n;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function F(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){F(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void B(d,b))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"../utils/guid.js":127,"../utils/log.js":128,"../utils/url.js":133,"./text-track-cue-list":113,"./text-track-enums":115,"global/document":1,"global/window":2,xhr:55}],120:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/AppleWebKit\/([\d.]+)/i.exec(i),k=j?parseFloat(j.pop()):null,l=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=p;var q=/Android/i.test(i);c.IS_ANDROID=q;var r=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],121:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":131}],122:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":128}],123:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){return a.raw=b,a}function g(a){return 0===a.indexOf("#")&&(a=a.slice(1)),x["default"].getElementById(a)}function h(){var a=arguments.length<=0||void 0===arguments[0]?"div":arguments[0],b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],d=x["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(D["default"].warn(F["default"](v,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function i(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function j(a){var b=a[H];return b||(b=a[H]=B.newGUID()),G[b]||(G[b]={}),G[b]}function k(a){var b=a[H];return b?!!Object.getOwnPropertyNames(G[b]).length:!1}function l(a){var b=a[H];if(b){delete G[b];try{delete a[H]}catch(c){a.removeAttribute?a.removeAttribute(H):a[H]=null}}}function m(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function n(a,b){m(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function o(a,b){if(m(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1); -a.className=c.join(" ")}}function p(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function q(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function r(){x["default"].body.focus(),x["default"].onselectstart=function(){return!1}}function s(){x["default"].onselectstart=function(){return!0}}function t(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=x["default"].documentElement,d=x["default"].body,e=c.clientLeft||d.clientLeft||0,f=z["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=z["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function u(a,b){var c={},d=t(a),e=a.offsetWidth,f=a.offsetHeight,g=d.top,h=d.left,i=b.pageY,j=b.pageX;return b.changedTouches&&(j=b.changedTouches[0].pageX,i=b.changedTouches[0].pageY),c.y=Math.max(0,Math.min(1,(g-i+f)/f)),c.x=Math.max(0,Math.min(1,(j-h)/e)),c}c.__esModule=!0,c.getEl=g,c.createEl=h,c.insertElFirst=i,c.getElData=j,c.hasElData=k,c.removeElData=l,c.hasElClass=m,c.addElClass=n,c.removeElClass=o,c.setElAttributes=p,c.getElAttributes=q,c.blockTextSelection=r,c.unblockTextSelection=s,c.findElPosition=t,c.getPointerPosition=u;var v=f(["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 ","."]),w=a("global/document"),x=e(w),y=a("global/window"),z=e(y),A=a("./guid.js"),B=d(A),C=a("./log.js"),D=e(C),E=a("tsml"),F=e(E),G={},H="vdata"+(new Date).getTime()},{"./guid.js":122,"./log.js":123,"global/document":1,"global/window":2,tsml:49}],119:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b,c){if(Array.isArray(b))return l(f,a,b,c);var d=n.getElData(a);d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=j(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,h=f.length;h>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===d.handlers[b].length&&(a.addEventListener?a.addEventListener(b,d.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,d.dispatcher))}function g(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return l(g,a,b,c);var e=function(b){d.handlers[b]=[],k(a,b)};if(b){var f=d.handlers[b];if(f){if(!c)return void e(b);if(c.guid)for(var h=0;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],122:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],123:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],124:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],125:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],126:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(a){return void 0===a||0===a.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:a.length,start:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||b>c)throw new Error("Failed to execute '"+a+"' on 'TimeRanges': The index provided ("+b+") is greater than or equal to the maximum bound ("+c+").")}c.__esModule=!0,c.createTimeRanges=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":123}],127:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],128:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='
    ',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;hx',a=b.firstChild.href}return a};c.getAbsoluteURL=j;var k=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=k;var l=function(a){var b=i(a),c=h["default"].location,d=":"===b.protocol?c.protocol:b.protocol,e=d+b.host!==c.protocol+c.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],129:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}d.__esModule=!0;{var g=b("global/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/html5.js"),X=(f(W),b("./tech/flash.js"));f(X)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var Y=function _(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),_.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&_.getPlayers()[a].ready(c),_.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},Z=h["default"].querySelector(".vjs-styles-defaults");if(!Z){Z=l.createStyleElement("vjs-styles-defaults");var $=h["default"].querySelector("head");$.insertBefore(Z,$.firstChild),l.setTextContent(Z,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,Y),Y.VERSION="5.0.0",Y.options=t["default"].prototype.options_,Y.getPlayers=function(){return t["default"].players},Y.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),Y.getComponent=n["default"].getComponent,Y.registerComponent=n["default"].registerComponent,Y.browser=L,Y.TOUCH_ENABLED=L.TOUCH_ENABLED,Y.extend=P["default"],Y.mergeOptions=x["default"],Y.bind=z.bind,Y.plugin=v["default"],Y.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](Y.options.languages,(c={},c[a]=b,c))[a]},Y.log=H["default"],Y.createTimeRange=Y.createTimeRanges=D.createTimeRanges,Y.formatTime=F["default"],Y.parseUrl=N.parseUrl,Y.isCrossOrigin=N.isCrossOrigin,Y.EventTarget=p["default"],Y.on=r.on,Y.one=r.one,Y.off=r.off,Y.trigger=r.trigger,Y.xhr=V["default"],Y.TextTrack=B["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return Y}):"object"==typeof d&&"object"==typeof c&&(c.exports=Y),d["default"]=Y,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":124,"./component":58,"./event-target":90,"./extend.js":91,"./player":98,"./plugins.js":99,"./setup":101,"./tech/flash.js":104,"./tech/html5.js":105,"./tracks/text-track.js":114,"./utils/browser.js":115,"./utils/create-deprecation-proxy.js":117,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/format-time.js":121,"./utils/log.js":123,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/url.js":128,"global/document":1,"lodash-compat/object/merge":40,"object.assign":43,xhr:50}]},{},[129])(129)}),function(a){var b=a.vttjs={},c=b.VTTCue,d=b.VTTRegion,e=a.VTTCue,f=a.VTTRegion;b.shim=function(){b.VTTCue=c,b.VTTRegion=d},b.restore=function(){b.VTTCue=e,b.VTTRegion=f}}(this),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=h[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){if("string"!=typeof a)return!1;var b=i[a.toLowerCase()];return b?a.toLowerCase():!1}function e(a){for(var b=1;ba||a>100)throw new Error("Position must be between 0 and 100.");u=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"positionAlign",e({},j,{get:function(){return v},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");v=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"size",e({},j,{get:function(){return w},set:function(a){if(0>a||a>100)throw new Error("Size must be between 0 and 100.");w=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"align",e({},j,{get:function(){return x},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");x=b,this.hasBeenReset=!0}})),h.displayState=void 0,i?h:void 0}var g="auto",h={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0};f.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)},a.VTTCue=a.VTTCue||f,b.VTTCue=f}(this,this.vttjs||{}),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=f[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){return"number"==typeof a&&a>=0&&100>=a}function e(){var a=100,b=3,e=0,f=100,g=0,h=100,i="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return a},set:function(b){if(!d(b))throw new Error("Width must be between 0 and 100.");a=b}},lines:{enumerable:!0,get:function(){return b},set:function(a){if("number"!=typeof a)throw new TypeError("Lines must be set to a number.");b=a}},regionAnchorY:{enumerable:!0,get:function(){return f},set:function(a){if(!d(a))throw new Error("RegionAnchorX must be between 0 and 100.");f=a}},regionAnchorX:{enumerable:!0,get:function(){return e},set:function(a){if(!d(a))throw new Error("RegionAnchorY must be between 0 and 100.");e=a}},viewportAnchorY:{enumerable:!0,get:function(){return h},set:function(a){if(!d(a))throw new Error("ViewportAnchorY must be between 0 and 100.");h=a}},viewportAnchorX:{enumerable:!0,get:function(){return g},set:function(a){if(!d(a))throw new Error("ViewportAnchorX must be between 0 and 100.");g=a}},scroll:{enumerable:!0,get:function(){return i},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");i=b}}})}var f={"":!0,up:!0};a.VTTRegion=a.VTTRegion||e,b.VTTRegion=e}(this,this.vttjs||{}),function(a){function b(a,b){this.name="ParsingError",this.code=a.code,this.message=b||a.message}function c(a){function b(a,b,c,d){return 3600*(0|a)+60*(0|b)+(0|c)+(0|d)/1e3}var c=a.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return c?c[3]?b(c[1],c[2],c[3].replace(":",""),c[4]):c[1]>59?b(c[1],c[2],0,c[4]):b(0,c[1],c[2],c[4]):null}function d(){this.values=o(null)}function e(a,b,c,d){var e=d?a.split(d):[a];for(var f in e)if("string"==typeof e[f]){var g=e[f].split(c);if(2===g.length){var h=g[0],i=g[1];b(h,i)}}}function f(a,f,g){function h(){var d=c(a);if(null===d)throw new b(b.Errors.BadTimeStamp,"Malformed timestamp: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(a,b){var c=new d;e(a,function(a,b){switch(a){case"region":for(var d=g.length-1;d>=0;d--)if(g[d].id===b){c.set(a,g[d].region);break}break;case"vertical":c.alt(a,b,["rl","lr"]);break;case"line":var e=b.split(","),f=e[0];c.integer(a,f),c.percent(a,f)?c.set("snapToLines",!1):null,c.alt(a,f,["auto"]),2===e.length&&c.alt("lineAlign",e[1],["start","middle","end"]);break;case"position":e=b.split(","),c.percent(a,e[0]),2===e.length&&c.alt("positionAlign",e[1],["start","middle","end"]);break;case"size":c.percent(a,b);break;case"align":c.alt(a,b,["start","middle","end","left","right"])}},/:/,/\s/),b.region=c.get("region",null),b.vertical=c.get("vertical",""),b.line=c.get("line","auto"),b.lineAlign=c.get("lineAlign","start"),b.snapToLines=c.get("snapToLines",!0),b.size=c.get("size",100),b.align=c.get("align","middle"),b.position=c.get("position",{start:0,left:0,middle:50,end:100,right:100},b.align),b.positionAlign=c.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},b.align)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return p[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!s[b.localName]||s[b.localName]===a.localName}function h(b,c){var d=q[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=r[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(a){function b(a,b){for(var c=b.childNodes.length-1;c>=0;c--)a.push(b.childNodes[c])}function c(a){if(!a||!a.length)return null;var d=a.pop(),e=d.textContent||d.innerText;if(e){var f=e.match(/^.*(\n|\r)/);return f?(a.length=0,f[0]):e}return"ruby"===d.tagName?c(a):d.childNodes?(b(a,d),c(a)):void 0}var d,e=[],f="";if(!a||!a.childNodes)return"ltr";for(b(e,a);f=c(e);)for(var g=0;g=0&&a.line<=100))return a.line;if(!a.track||!a.track.textTrackList||!a.track.textTrackList.mediaElement)return-1;for(var b=a.track,c=b.textTrackList,d=0,e=0;ei&&(e=new l(a),g=i),a=new l(f)}return e||f}var f=new l(b),g=b.cue,h=i(g),j=[];if(g.snapToLines){var k;switch(g.vertical){case"":j=["+y","-y"],k="height";break;case"rl":j=["+x","-x"],k="width";break;case"lr":j=["-x","+x"],k="width"}var m=f.lineHeight,n=m*Math.round(h),o=c[k]+m,p=j[0];Math.abs(n)>o&&(n=0>n?-1:1,n*=Math.ceil(o/m)*m),0>h&&(n+=""===g.vertical?c.height:c.width,j=j.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}j=["+y","-x","+x","-y"],f=new l(b)}var r=e(f,j);b.move(r.toCSSCompatValues(c))}function n(){}var o=Object.create||function(){function a(){}return function(b){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return a.prototype=b,new a}}();b.prototype=o(Error.prototype),b.prototype.constructor=b,b.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},d.prototype={set:function(a,b){this.get(a)||""===b||(this.values[a]=b)},get:function(a,b,c){return c?this.has(a)?this.values[a]:b[c]:this.has(a)?this.values[a]:b},has:function(a){return a in this.values},alt:function(a,b,c){for(var d=0;d=0&&100>=b)?(this.set(a,b),!0):!1}};var p={"&":"&","<":"<",">":">","‎":"‎","‏":"‏"," ":" "},q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},r={v:"title",lang:"lang"},s={rt:"ruby"},t=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109]; +a.className=c.join(" ")}}function p(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function q(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function r(){x["default"].body.focus(),x["default"].onselectstart=function(){return!1}}function s(){x["default"].onselectstart=function(){return!0}}function t(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=x["default"].documentElement,d=x["default"].body,e=c.clientLeft||d.clientLeft||0,f=z["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=z["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function u(a,b){var c={},d=t(a),e=a.offsetWidth,f=a.offsetHeight,g=d.top,h=d.left,i=b.pageY,j=b.pageX;return b.changedTouches&&(j=b.changedTouches[0].pageX,i=b.changedTouches[0].pageY),c.y=Math.max(0,Math.min(1,(g-i+f)/f)),c.x=Math.max(0,Math.min(1,(j-h)/e)),c}c.__esModule=!0,c.getEl=g,c.createEl=h,c.insertElFirst=i,c.getElData=j,c.hasElData=k,c.removeElData=l,c.hasElClass=m,c.addElClass=n,c.removeElClass=o,c.setElAttributes=p,c.getElAttributes=q,c.blockTextSelection=r,c.unblockTextSelection=s,c.findElPosition=t,c.getPointerPosition=u;var v=f(["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 ","."]),w=a("global/document"),x=e(w),y=a("global/window"),z=e(y),A=a("./guid.js"),B=d(A),C=a("./log.js"),D=e(C),E=a("tsml"),F=e(E),G={},H="vdata"+(new Date).getTime()},{"./guid.js":127,"./log.js":128,"global/document":1,"global/window":2,tsml:54}],124:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b,c){if(Array.isArray(b))return l(f,a,b,c);var d=n.getElData(a);d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=j(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,h=f.length;h>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===d.handlers[b].length&&(a.addEventListener?a.addEventListener(b,d.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,d.dispatcher))}function g(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return l(g,a,b,c);var e=function(b){d.handlers[b]=[],k(a,b)};if(b){var f=d.handlers[b];if(f){if(!c)return void e(b);if(c.guid)for(var h=0;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],127:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],128:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],129:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],130:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],131:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(a){return void 0===a||0===a.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:a.length,start:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||b>c)throw new Error("Failed to execute '"+a+"' on 'TimeRanges': The index provided ("+b+") is greater than or equal to the maximum bound ("+c+").")}c.__esModule=!0,c.createTimeRanges=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":128}],132:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],133:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;hx',a=b.firstChild.href}return a};c.getAbsoluteURL=j;var k=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=k;var l=function(a){var b=i(a),c=h["default"].location,d=":"===b.protocol?c.protocol:b.protocol,e=d+b.host!==c.protocol+c.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],134:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}d.__esModule=!0;{var g=b("global/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/html5.js"),X=(f(W),b("./tech/flash.js"));f(X)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var Y=function _(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),_.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&_.getPlayers()[a].ready(c),_.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},Z=h["default"].querySelector(".vjs-styles-defaults");if(!Z){Z=l.createStyleElement("vjs-styles-defaults");var $=h["default"].querySelector("head");$.insertBefore(Z,$.firstChild),l.setTextContent(Z,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,Y),Y.VERSION="5.0.2",Y.options=t["default"].prototype.options_,Y.getPlayers=function(){return t["default"].players},Y.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),Y.getComponent=n["default"].getComponent,Y.registerComponent=n["default"].registerComponent,Y.browser=L,Y.TOUCH_ENABLED=L.TOUCH_ENABLED,Y.extend=P["default"],Y.mergeOptions=x["default"],Y.bind=z.bind,Y.plugin=v["default"],Y.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](Y.options.languages,(c={},c[a]=b,c))[a]},Y.log=H["default"],Y.createTimeRange=Y.createTimeRanges=D.createTimeRanges,Y.formatTime=F["default"],Y.parseUrl=N.parseUrl,Y.isCrossOrigin=N.isCrossOrigin,Y.EventTarget=p["default"],Y.on=r.on,Y.one=r.one,Y.off=r.off,Y.trigger=r.trigger,Y.xhr=V["default"],Y.TextTrack=B["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return Y}):"object"==typeof d&&"object"==typeof c&&(c.exports=Y),d["default"]=Y,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":129,"./component":63,"./event-target":95,"./extend.js":96,"./player":103,"./plugins.js":104,"./setup":106,"./tech/flash.js":109,"./tech/html5.js":110,"./tracks/text-track.js":119,"./utils/browser.js":120,"./utils/create-deprecation-proxy.js":122,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/format-time.js":126,"./utils/log.js":128,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/url.js":133,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,xhr:55}]},{},[134])(134)}),function(a){var b=a.vttjs={},c=b.VTTCue,d=b.VTTRegion,e=a.VTTCue,f=a.VTTRegion;b.shim=function(){b.VTTCue=c,b.VTTRegion=d},b.restore=function(){b.VTTCue=e,b.VTTRegion=f}}(this),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=h[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){if("string"!=typeof a)return!1;var b=i[a.toLowerCase()];return b?a.toLowerCase():!1}function e(a){for(var b=1;ba||a>100)throw new Error("Position must be between 0 and 100.");u=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"positionAlign",e({},j,{get:function(){return v},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");v=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"size",e({},j,{get:function(){return w},set:function(a){if(0>a||a>100)throw new Error("Size must be between 0 and 100.");w=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"align",e({},j,{get:function(){return x},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");x=b,this.hasBeenReset=!0}})),h.displayState=void 0,i?h:void 0}var g="auto",h={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0};f.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)},a.VTTCue=a.VTTCue||f,b.VTTCue=f}(this,this.vttjs||{}),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=f[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){return"number"==typeof a&&a>=0&&100>=a}function e(){var a=100,b=3,e=0,f=100,g=0,h=100,i="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return a},set:function(b){if(!d(b))throw new Error("Width must be between 0 and 100.");a=b}},lines:{enumerable:!0,get:function(){return b},set:function(a){if("number"!=typeof a)throw new TypeError("Lines must be set to a number.");b=a}},regionAnchorY:{enumerable:!0,get:function(){return f},set:function(a){if(!d(a))throw new Error("RegionAnchorX must be between 0 and 100.");f=a}},regionAnchorX:{enumerable:!0,get:function(){return e},set:function(a){if(!d(a))throw new Error("RegionAnchorY must be between 0 and 100.");e=a}},viewportAnchorY:{enumerable:!0,get:function(){return h},set:function(a){if(!d(a))throw new Error("ViewportAnchorY must be between 0 and 100.");h=a}},viewportAnchorX:{enumerable:!0,get:function(){return g},set:function(a){if(!d(a))throw new Error("ViewportAnchorX must be between 0 and 100.");g=a}},scroll:{enumerable:!0,get:function(){return i},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");i=b}}})}var f={"":!0,up:!0};a.VTTRegion=a.VTTRegion||e,b.VTTRegion=e}(this,this.vttjs||{}),function(a){function b(a,b){this.name="ParsingError",this.code=a.code,this.message=b||a.message}function c(a){function b(a,b,c,d){return 3600*(0|a)+60*(0|b)+(0|c)+(0|d)/1e3}var c=a.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return c?c[3]?b(c[1],c[2],c[3].replace(":",""),c[4]):c[1]>59?b(c[1],c[2],0,c[4]):b(0,c[1],c[2],c[4]):null}function d(){this.values=o(null)}function e(a,b,c,d){var e=d?a.split(d):[a];for(var f in e)if("string"==typeof e[f]){var g=e[f].split(c);if(2===g.length){var h=g[0],i=g[1];b(h,i)}}}function f(a,f,g){function h(){var d=c(a);if(null===d)throw new b(b.Errors.BadTimeStamp,"Malformed timestamp: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(a,b){var c=new d;e(a,function(a,b){switch(a){case"region":for(var d=g.length-1;d>=0;d--)if(g[d].id===b){c.set(a,g[d].region);break}break;case"vertical":c.alt(a,b,["rl","lr"]);break;case"line":var e=b.split(","),f=e[0];c.integer(a,f),c.percent(a,f)?c.set("snapToLines",!1):null,c.alt(a,f,["auto"]),2===e.length&&c.alt("lineAlign",e[1],["start","middle","end"]);break;case"position":e=b.split(","),c.percent(a,e[0]),2===e.length&&c.alt("positionAlign",e[1],["start","middle","end"]);break;case"size":c.percent(a,b);break;case"align":c.alt(a,b,["start","middle","end","left","right"])}},/:/,/\s/),b.region=c.get("region",null),b.vertical=c.get("vertical",""),b.line=c.get("line","auto"),b.lineAlign=c.get("lineAlign","start"),b.snapToLines=c.get("snapToLines",!0),b.size=c.get("size",100),b.align=c.get("align","middle"),b.position=c.get("position",{start:0,left:0,middle:50,end:100,right:100},b.align),b.positionAlign=c.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},b.align)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return p[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!s[b.localName]||s[b.localName]===a.localName}function h(b,c){var d=q[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=r[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(a){function b(a,b){for(var c=b.childNodes.length-1;c>=0;c--)a.push(b.childNodes[c])}function c(a){if(!a||!a.length)return null;var d=a.pop(),e=d.textContent||d.innerText;if(e){var f=e.match(/^.*(\n|\r)/);return f?(a.length=0,f[0]):e}return"ruby"===d.tagName?c(a):d.childNodes?(b(a,d),c(a)):void 0}var d,e=[],f="";if(!a||!a.childNodes)return"ltr";for(b(e,a);f=c(e);)for(var g=0;g=0&&a.line<=100))return a.line;if(!a.track||!a.track.textTrackList||!a.track.textTrackList.mediaElement)return-1;for(var b=a.track,c=b.textTrackList,d=0,e=0;ei&&(e=new l(a),g=i),a=new l(f)}return e||f}var f=new l(b),g=b.cue,h=i(g),j=[];if(g.snapToLines){var k;switch(g.vertical){case"":j=["+y","-y"],k="height";break;case"rl":j=["+x","-x"],k="width";break;case"lr":j=["-x","+x"],k="width"}var m=f.lineHeight,n=m*Math.round(h),o=c[k]+m,p=j[0];Math.abs(n)>o&&(n=0>n?-1:1,n*=Math.ceil(o/m)*m),0>h&&(n+=""===g.vertical?c.height:c.width,j=j.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}j=["+y","-x","+x","-y"],f=new l(b)}var r=e(f,j);b.move(r.toCSSCompatValues(c))}function n(){}var o=Object.create||function(){function a(){}return function(b){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return a.prototype=b,new a}}();b.prototype=o(Error.prototype),b.prototype.constructor=b,b.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},d.prototype={set:function(a,b){this.get(a)||""===b||(this.values[a]=b)},get:function(a,b,c){return c?this.has(a)?this.values[a]:b[c]:this.has(a)?this.values[a]:b},has:function(a){return a in this.values},alt:function(a,b,c){for(var d=0;d=0&&100>=b)?(this.set(a,b),!0):!1}};var p={"&":"&","<":"<",">":">","‎":"‎","‏":"‏"," ":" "},q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},r={v:"title",lang:"lang"},s={rt:"ruby"},t=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109]; j.prototype.applyStyles=function(a,b){b=b||this.div;for(var c in a)a.hasOwnProperty(c)&&(b.style[c]=a[c])},j.prototype.formatStyle=function(a,b){return 0===a?0:a+b},k.prototype=o(j.prototype),k.prototype.constructor=k,l.prototype.move=function(a,b){switch(b=void 0!==b?b:this.lineHeight,a){case"+x":this.left+=b,this.right+=b;break;case"-x":this.left-=b,this.right-=b;break;case"+y":this.top+=b,this.bottom+=b;break;case"-y":this.top-=b,this.bottom-=b}},l.prototype.overlaps=function(a){return this.lefta.left&&this.topa.top},l.prototype.overlapsAny=function(a){for(var b=0;b=a.top&&this.bottom<=a.bottom&&this.left>=a.left&&this.right<=a.right},l.prototype.overlapsOppositeAxis=function(a,b){switch(b){case"+x":return this.lefta.right;case"+y":return this.topa.bottom}},l.prototype.intersectPercentage=function(a){var b=Math.max(0,Math.min(this.right,a.right)-Math.max(this.left,a.left)),c=Math.max(0,Math.min(this.bottom,a.bottom)-Math.max(this.top,a.top)),d=b*c;return d/(this.height*this.width)},l.prototype.toCSSCompatValues=function(a){return{top:this.top-a.top,bottom:a.bottom-this.bottom,left:this.left-a.left,right:a.right-this.right,height:this.height,width:this.width}},l.getSimpleBoxPosition=function(a){var b=a.div?a.div.offsetHeight:a.tagName?a.offsetHeight:0,c=a.div?a.div.offsetWidth:a.tagName?a.offsetWidth:0,d=a.div?a.div.offsetTop:a.tagName?a.offsetTop:0;a=a.div?a.div.getBoundingClientRect():a.tagName?a.getBoundingClientRect():a;var e={left:a.left,right:a.right,top:a.top||d,height:a.height||b,bottom:a.bottom||d+(a.height||b),width:a.width||c};return e},n.StringDecoder=function(){return{decode:function(a){if(!a)return"";if("string"!=typeof a)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(a))}}},n.convertCueToDOMTree=function(a,b){return a&&b?g(a,b):null};var u=.05,v="sans-serif",w="1.5%";n.processCues=function(a,b,c){function d(a){for(var b=0;b")){i.cue.id=j;continue}case"CUE":try{f(j,i.cue,i.regionList)}catch(m){i.reportOrThrowError(m),i.cue=null,i.state="BADCUE";continue}i.state="CUETEXT";continue;case"CUETEXT":var n=-1!==j.indexOf("-->");if(!j||n&&(l=!0)){i.oncue&&i.oncue(i.cue),i.cue=null,i.state="ID";continue}i.cue.text&&(i.cue.text+="\n"),i.cue.text+=j;continue;case"BADCUE":j||(i.state="ID");continue}}}catch(m){i.reportOrThrowError(m),"CUETEXT"===i.state&&i.cue&&i.oncue&&i.oncue(i.cue),i.cue=null,i.state="INITIAL"===i.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var a=this;try{if(a.buffer+=a.decoder.decode(),(a.cue||"HEADER"===a.state)&&(a.buffer+="\n\n",a.parse()),"INITIAL"===a.state)throw new b(b.Errors.BadSignature)}catch(c){a.reportOrThrowError(c)}return a.onflush&&a.onflush(),this}},a.WebVTT=n}(this,this.vttjs||{}); //# sourceMappingURL=video.min.js.map \ No newline at end of file diff --git a/ennstatus/static/js/video.js/dist/video.min.js.map b/ennstatus/static/js/video.js/dist/video.min.js.map --- a/ennstatus/static/js/video.js/dist/video.min.js.map +++ b/ennstatus/static/js/video.js/dist/video.min.js.map @@ -1,1 +1,1 @@ -{"version":3,"file":"video.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/date/now.js","node_modules/lodash-compat/function/debounce.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/function/throttle.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/safe-json-parse/tuple.js","node_modules/tsml/tsml.js","node_modules/xhr/index.js","node_modules/xhr/node_modules/once/once.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/node_modules/is-function/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/trim/index.js","node_modules/xhr/node_modules/parse-headers/parse-headers.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/mouse-time-display.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extend.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"getNative","nativeNow","Date","now","getTime","../internal/getNative",5,"debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject",6,"restParam","start","index","rest","Array","otherArgs",7,"throttle","./debounce",8,"arrayCopy","source","array",9,"arrayEach","iteratee",10,"baseCopy","props","object","key",11,"createBaseFor","baseFor","./createBaseFor",12,"baseForIn","keysIn","../object/keysIn","./baseFor",13,"baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",14,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",15,"baseProperty","toObject","./toObject",16,"bindCallback","argCount","identity","collection","accumulator","other","../utility/identity",17,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",18,"fromRight","keysFunc","iterable",19,"getLength","./baseProperty",20,"isNative","../lang/isNative",21,"isLength","./getLength","./isLength",22,"isHostObject","Object","toString",23,"isIndex","reIsUint","test","MAX_SAFE_INTEGER",24,"type","./isIndex",25,26,27,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",28,"support","unindexedChars","charAt","../support",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","objToString","nativeIsArray","../internal/isLength",31,"isFunction","funcTag","./isObject",32,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",33,34,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",35,"stringTag",36,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","enumPrototypes","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"arrayProto","splice","x","0","y","spliceObjects",42,43,"canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","assignShim","target","syms","objTarget","getOwnPropertySymbols","shim","assignHasPendingExceptions","assign","preventExtensions","thrower","define-properties","object-keys",44,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","enumerable","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",45,"hasOwn","ctx","k",46,"has","slice","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$window","$console","$parent","$self","$frames","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",47,"str","callee",48,"SafeParseTuple","reviver","error","json","JSON","parse","err",49,"clean","sa",50,"isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers",51,"called",52,"forEach","list","iterator","context","forEachArray","forEachString","forEachObject","len","string","is-function",53,"alert","confirm","prompt",54,"trim","left","right",55,"arg","split","row","indexOf","toLowerCase","_componentJs2","_interopRequireDefault","_componentJs","_classCallCheck","BigPlayButton","_Button","player","buildCSSClass","__esModule","newObj","default","Constructor","instance","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_component","_objectAssign","Button","_Component","on","handleBlur","createEl","attributes","_objectAssign2","tabIndex","el","controlTextEl_","innerHTML","localize","controlText_","handleFocus","Events","_globalDocument2","Fn","bind","handleKeyPress","event","which","preventDefault","handleClick","_interopRequireWildcard","_globalWindow2","_globalWindow","Dom","_utilsDomJs","Component","player_","id_","Guid","newGUID","el_","childIndex_","childNameIndex_","reportTouchActivity","trigger","bubbles","children_","dispose","removeElData","tagName","properties","languages","language","children","getChildById","addChild","child","componentName","componentClassName","componentClass","_utilsToTitleCaseJs2","ComponentClass","getComponent","component","removeChild","getChild","childFound","options_","parentOptions","_this","handleAdd","opts","playerOptions","_name","first","second","removeOnDispose","_this2","off","cleanRemover","guid","third","nodeName","one","_this3","_arguments","newFunc","ready","isReady_","triggerReady","readyQueue","readyQueue_","hasClass","classToCheck","hasElClass","addElClass","classToAdd","removeClass","classToRemove","removeElClass","show","dimension","num","skipListeners","widthOrHeight","val","style","emitTapEvents","touchStart","touchTimeThreshold","couldBeTap","touches","firstTouch","xdiff","pageX","touchDistance","tapMovementThreshold","noTap","touchTime","enableTouchActivity","report","reportUserActivity","touchHolding","clearInterval","setInterval","touchEnd","intervalId","comp","init","subObj","extend","_name2","_spacerControlsCustomControlSpacerJs","ControlBar","className","FullscreenToggle","isFullscreen","controlText","updateShowing","LiveDisplay","contentEl_","aria-live","MuteToggle","update","tech_","addClass","vol","muted","level","toMute","handlePlay","handlePause","PlayToggle","play","pause","_menuMenuJs2","_menuMenuJs","PlaybackRateMenuButton","_MenuButton","updateVisibility","appendChild","labelEl_","menu","setAttribute","playbackRate","currentRate","newRate","playbackRates","playbackRateSupported","updateLabel","PlaybackRateMenuItem","_MenuItem","label","rate","buffered","percentify","time","end","percent","part","width","bufferedEnd","_lodashCompatFunctionThrottle2","_lodashCompatFunctionThrottle","MouseTimeDisplay","controlBar","progressControl","handleMouseMove","duration","position","findElPosition","parentNode","newTime","_utilsFormatTimeJs","updateDataAttr","_mouseTimeDisplayJs","ProgressControl","_Slider","updateARIAAttributes","aria-label","scrubbing","getCache","currentTime","getPercent","toFixed","_utilsFormatTimeJs2","SeekBar","videoWasPlaying","stepForward","stepBack","CustomControlSpacer","_Spacer","Spacer","_TextTrackMenuItem","CaptionSettingsMenuItem","_captionSettingsMenuItemJs2","_captionSettingsMenuItemJs","_TextTrackButton","CaptionsButton","threshold","hide","items","kind","kind_","_textTrackMenuItemJs2","_textTrackMenuItemJs","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","ChaptersButton","createItems","tracks","textTracks","createMenu","track","cues","chaptersTrack","contentEl","cue","mi","_utilsFnJs","ChaptersTrackMenuItem","addEventListener","startTime","OffTextTrackMenuItem","selected","handleTracksChange","_offTextTrackMenuItemJs","TextTrackButton","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","_globalDocument","TextTrackMenuItem","onchange","Event","dispatchEvent","updateContent","DurationDisplay","formattedTime","remainingTime","localizedText","TimeDivider","_sliderSliderJs","_volumeLevelJs","volume","calculateDistance","VolumeBar","VolumeControl","_volumeBarJs","VolumeLevel","_volumeControlVolumeBarJs","VolumeMenuButton","inline","vertical","volumeBar","volumeUpdate","orientationClass","vb","./utils/dom.js",90,"_utilsEventsJs","EventTarget","allowedEvents_","ael","_utilsLog","_utilsLog2","subClassMethods","methods","FullscreenApi","apiMap","browserApi","LoadingSpinner","MediaError","message","errorTypes","_buttonJs2","_buttonJs","_utilsToTitleCaseJs","MenuButton","title","buttonPressed_","unpressButton","focus","MenuItem","_selected","Menu","unlockShowing","contentElType","append","_utilsBrowserJs","_utilsLogJs2","_utilsLogJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_controlBarControlBarJs","tagAttributes","getElAttributes","languagesToLower","_utilsMergeOptionsJs2","plugins","getOwnPropertyNames","playerOptionsCopy","isAudio","controls","Player","styleEl_","players","removeAttribute","defaultsStyleEl","querySelector","height","aspectRatio","privDimension","_dimension","parsedVal","parseFloat","updateStyleEl_","fluid","bool","ratio","aspectRatio_","videoWidth","videoHeight","ratioParts","width_","height_","ratioMultiplier","loadTech_","techName","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","poster","src","cache_","techComponent","handleTechReady_","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechAbort_","handleTechStalled_","handleTechLoadedMetaData_","handleTechLoadedData_","handleTechTextTrackChange_","handleTechPosterChange_","usingNativeControls","addTechControlsListeners_","removeTechControlsListeners_","handleTechClick_","handleTechTouchMove_","handleTechTouchEnd_","hasStarted","_hasStarted","hasStarted_","handleTechTap_","userActive","handleTechTouchStart_","userWasActive","handleStageClick_","handleTechSuspend_","handleTechEmptied_","handleTechTimeUpdate_","handleTechRateChange_","handleTechVolumeChange_","techCall_","techGet_","isScrubbing","scrubbing_","seconds","bufferedPercent","_utilsBufferJs","percentAsDecimal","fsApi","fullscreenchange","documentFullscreenChange","requestFullscreen","supportsFullScreen","exitFullscreen","isFullWindow","docOrigOverflow","documentElement","overflow","exitFullWindow","tech","b","currentTech","sourceList_","currentType_","load","sourceTech","selectSource","controls_","usingNativeControls_","error_","_mediaErrorJs2","ended","seeking","seekable","userActivity_","userActive_","stopPropagation","listenForUserActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseDown","handleMouseUp","inactivityTimeout","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","languages_","toJSON","tagOptions","dataSetup","_safeParseTuple","baseOptions","hasChildNodes","childNodes","childName","_playerJs","PosterImage","fallbackImg_","setSrc","_windowLoaded","autoSetup","vids","getElementsByTagName","mediaEls","audios","mediaEl","getAttribute","autoSetupTimeout","vjs","Slider","bar","barName","playerEvent","progress","percentage","stopImmediatePropagation","vertical_","registerComponent","FlashRtmpDecorator","Flash","streamingFormats","streamToParts","parts","connection","stream","connEnd","streamBegin","lastIndexOf","substring","rtmpSourceHandler","attrUpper","attr","toUpperCase","_api","vjs_setProperty","vjs_getProperty","_tech","_utilsUrlJs","_Tech","setSource","swf","objId","eventProxyFunction","errorEventProxyFunction","flashVars","params","wmode","embed","setCurrentTime","vjs_pause","lastSeekTarget_","currentSource_","setPoster","_utilsTimeRangesJs","createTimeRange","ranges","enterFullScreen","_tech2","_readWrite","_readOnly","_createGetter","nativeSourceHandler","canHandleSource","guessMimeType","ext","Url","getFileExtension","video/flv","video/mp4","checkReady","onEvent","swfID","eventName","getEl","version","navigator","description","match","getEmbedCode","flashVarsString","paramsString","attrsString","flashvars","_techJs2","_techJs","Html5","currentSrc","initNetworkState_","handleLateInit_","nodesLength","nodes","node","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackChange_","handleTextTrackChange","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","emulatedTt","tt","handleTextTrackAdd_","clone","cloneNode","createElement","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","overwriteAttrs","_ret","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","paused","setVolume","setMuted","offsetWidth","offsetHeight","video","networkState","HAVE_METADATA","webkitEnterFullScreen","exitFullScreen","webkitExitFullScreen","_src","setPreload","autoplay","setAutoplay","setControls","setLoop","defaultMuted","played","removeTrack_","TEST_VID","srclang","isSupported","canPlayType","registerSourceHandler","canControlVolume","canControlPlaybackRate","supportsNativeTextTracks","supportsTextTracks","mpegurlRE","patchCanPlayType","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","firstChild","MediaLoader","_tracksTextTrackList","Tech","manualProgressOn","featuresTimeupdateEvents","nativeCaptions","nativeTextTracks","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","onDurationChange","duration_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","currentTimeInterval","manuallyTriggered","initTextTrackListeners","textTrackListChanges","script","textTracksChanges","updateDisplay","_tracksTextTrackList2","createTrackHelper","withSourceHandlers","handler","handlers","sourceHandlers","selectSourceHandler","sh","srcObj","sourceHandler_","disposeSourceHandler","handleSource","../tracks/text-track","../tracks/text-track-list","../utils/buffer.js","../utils/fn.js","../utils/log.js","../utils/time-ranges.js","global/document",108,"IS_IE8","prop","TextTrackCueList","get","length_","setCues_","cues_","oldLength","defineProp","parseInt","color","opacity","darkGray","lightGray","TextTrackDisplay","clearDisplay","updateForTrack","overrides","getValues","_i","cueDiv","displayState","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","bottom","fontFamily","fontVariant","fontMap","../component","../menu/menu-button.js","../menu/menu-item.js","../menu/menu.js",110,"TextTrackMode","disabled","hidden","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","querySelectorAll","trackObjs","TextTrackList","tracks_","_eventTarget2","change","addtrack","removetrack","_event","rtrack","getTrackById","getSelectedOptionValue","selectedOption","selectedOptions","selectedIndex","option","TextTrackSettings","persistTextTrackSettings","saveSettings","restoreSettings","textEdge","fgColor","bgColor","bgOpacity","setValues","values","setSelectedOption","_safeJsonParseTuple2","localStorage","getItem","removeItem","ttDisplay","safe-json-parse/tuple",114,"_textTrackCueList2","_textTrackCueList","_eventTarget","TextTrack","TextTrackEnum","TextTrackKind","mode","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","addCue","removeCue","removed","parseCues","srcContent","parser","loadTrack","crossOrigin","isCrossOrigin","_xhr2","responseBody","O","fromIndex","abs","webkitVersionMap","exec","USER_AGENT","IS_IPHONE","IS_IPAD","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","appleWebkitVersion","bufferedDuration","_timeRangesJs","_logJs","_logJs2","messages","Proxy","warn","defaultBehaviors","_taggedTemplateLiteralLoose","strings","raw","getElementById","propName","_tsml2","_templateObject","parent","getElData","elData","elIdAttr","element","classNames","join","knownBooleans","attrs","attrName","attrVal","onselectstart","getBoundingClientRect","box","top","docEl","clientLeft","scrollLeft","pageXOffset","getPointerPosition","boxH","boxX","pageY","unblockTextSelection","_tsml","elem","_handleMultipleEvents","dispatcher","hash","fixEvent","m","handlersCopy","isImmediatePropagationStopped","removeType","ownerDocument","isPropagationStopped","defaultPrevented","targetData","returnTrue","returnFalse","old","srcElement","relatedTarget","returnValue","cancelBubble","doc","clientX","_cleanUpEvents","detachEvent","ret","guide","h","floor",122,"_logType","console","log","history","argsArray","isPlain","mergeOptions","destination","lodash-compat/object/merge",125,"createStyleElement","createTimeRanges","createTimeRangesObj","getRange","fnName","valueIndex","rangeIndex","parseUrl","href","addToBody","div","details","protocol",129,"stylesheet","_utilsStylesheetJs","_player2","_player","_tracksTextTrackJs","_lodashCompatObjectMerge","_utilsCreateDeprecationProxyJs","_techHtml5Js","getPlayers","setTextContent","addLanguage"],"mappings":"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iB,EAAS60C,aAAA/xC,GAAAwf,MAAAA,oBAMV7R,GAAAuO,EAAA8f,MAAAh8B,OAKD2N,GAAA3N,CAIF,KAAK2N,IAAOA,EAAAwR,SAEV,KAAQ,IAAGne,WAAA,kRAuBbuwC,EAAQS,eAAUrxB,EAAc,qNAkC9BzjB,EAAK60C,WAAA,WACL,MAAKN,GAAA,WAAAljB,wZA2NPrxB,EAAQ+0C,YAAG,SAAAn0C,EAAOqY,gHAsBlBjZ,EAAQ29B,gBAAU39B,EAAAwzC,iBAAc9V,EAAA8V;AhIhYhC;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n","var isObject = require('../lang/isObject'),\n now = require('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","var debounce = require('./debounce'),\n isObject = require('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n","module.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n","var isFunction = require('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n","var trim = require('trim')\n , forEach = require('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}, attributes={}) {\n props = assign({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = assign({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n let el = super.createEl(tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
    \n *
    Button
    \n *
    \n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // ->
    \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
    myButton
    \n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech_\n && this.player().tech_['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file mouse-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport throttle from 'lodash-compat/function/throttle';\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\nclass MouseTimeDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update(0, 0);\n\n player.on('ready', () => {\n this.on(player.controlBar.progressControl.el(), 'mousemove', throttle(Fn.bind(this, this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-mouse-display'\n });\n }\n\n handleMouseMove(event) {\n let duration = this.player_.duration();\n let newTime = this.calculateDistance(event) * duration;\n let position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n }\n\n update(newTime, position) {\n let time = formatTime(newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n }\n\n calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n }\n}\n\nComponent.registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexport default MouseTimeDisplay;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\nimport MouseTimeDisplay from './mouse-time-display.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: [\n 'seekBar'\n ]\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport assign from 'object.assign';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: [\n 'loadProgressBar',\n 'mouseTimeDisplay',\n 'playProgressBar'\n ],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl({\n className: this.buildCSSClass(),\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00',\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: `${this.localize('Duration Time')} 0:00`\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: `${this.localize('Remaining Time')} -0:00`,\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
    /
    '\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: [\n 'volumeLevel'\n ],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: [\n 'volumeBar'\n ]\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function(){\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function(){\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vb = new VolumeBar(this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
  • `\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n createEl(type, props, attrs) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech_) { this.tech_.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n }\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n handleTechProgress_() {\n this.trigger('progress');\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n handleTechTap_() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n handleTechTouchMove_() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n handleStageClick_() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n handleTechError_() {\n let error = this.tech_.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n handleTechSuspend_() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n handleTechAbort_() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n handleTechEmptied_() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n handleTechStalled_() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n handleTechLoadedData_() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n handleTechRateChange_() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n handleTechVolumeChange_() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName_} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName_} playback technology element.`, e);\n this.tech_.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall_('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall_('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet_('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet_('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall_('setMuted', muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet_('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet_('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    `;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport { isCrossOrigin } from '../utils/url.js';\nimport XHR from 'xhr';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n let opts = {\n uri: src\n };\n\n let crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n XHR(opts, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\nimport log from './log.js';\nimport tsml from 'tsml';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}, attributes={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn(tsml`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 ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\nexport function getPointerPosition(el, event) {\n let position = {};\n let box = findElPosition(el);\n let boxW = el.offsetWidth;\n let boxH = el.offsetHeight;\n\n let boxY = box.top;\n let boxX = box.left;\n let pageY = event.pageY;\n let pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' &&\n key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","import log from './log.js';\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\nexport function createTimeRanges(start, end){\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexport { createTimeRanges as createTimeRange };\n\nfunction createTimeRangesObj(ranges){\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex){\n if (rangeIndex === undefined) {\n log.warn(`DEPRECATED: Function '${fnName}' on 'TimeRanges' called without an index argument.`);\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex){\n if (index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is greater than or equal to the maximum bound (${maxIndex}).`);\n }\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nexport const isCrossOrigin = function(url) {\n let urlInfo = parseUrl(url);\n let winLoc = window.location;\n\n // IE8 protocol relative urls will return ':' for protocol\n let srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n let crossOrigin = (srcProtocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n return crossOrigin;\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\nimport TextTrack from './tracks/text-track.js';\n\nimport assign from 'object.assign';\nimport { createTimeRanges } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendFn from './extend.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\nimport xhr from 'xhr';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = document.querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n `);\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = extendFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = xhr;\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = TextTrack;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n"]} \ No newline at end of file +{"version":3,"file":"video.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/date/now.js","node_modules/lodash-compat/function/debounce.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/function/throttle.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/hasSymbols.js","node_modules/object.assign/implementation.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/function-bind/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/object.assign/polyfill.js","node_modules/object.assign/shim.js","node_modules/safe-json-parse/tuple.js","node_modules/tsml/tsml.js","node_modules/xhr/index.js","node_modules/xhr/node_modules/once/once.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/node_modules/is-function/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/trim/index.js","node_modules/xhr/node_modules/parse-headers/parse-headers.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/mouse-time-display.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extend.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"getNative","nativeNow","Date","now","getTime","../internal/getNative",5,"debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject",6,"restParam","start","index","rest","Array","otherArgs",7,"throttle","./debounce",8,"arrayCopy","source","array",9,"arrayEach","iteratee",10,"baseCopy","props","object","key",11,"createBaseFor","baseFor","./createBaseFor",12,"baseForIn","keysIn","../object/keysIn","./baseFor",13,"baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",14,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",15,"baseProperty","toObject","./toObject",16,"bindCallback","argCount","identity","collection","accumulator","other","../utility/identity",17,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",18,"fromRight","keysFunc","iterable",19,"getLength","./baseProperty",20,"isNative","../lang/isNative",21,"isLength","./getLength","./isLength",22,"isHostObject","Object","toString",23,"isIndex","reIsUint","test","MAX_SAFE_INTEGER",24,"type","./isIndex",25,26,27,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",28,"support","unindexedChars","charAt","../support",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","objToString","nativeIsArray","../internal/isLength",31,"isFunction","funcTag","./isObject",32,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",33,34,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",35,"stringTag",36,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","enumPrototypes","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"arrayProto","splice","x","0","y","spliceObjects",42,43,"Symbol","getOwnPropertySymbols","iterator","obj","sym","getOwnPropertyNames","syms","getOwnPropertyDescriptor","descriptor","enumerable","object-keys",44,"bind","canBeObject","hasSymbols","propIsEnumerable","target","objTarget","./hasSymbols","function-bind",45,"defineProperties","getPolyfill","shim","implementation","./implementation","./polyfill","./shim","define-properties",46,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",47,"hasOwn","ctx","k",48,"ERROR_MESSAGE","slice","funcType","that","binder","bound","boundLength","boundArgs","join","Empty",49,"has","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$console","$frame","$frameElement","$frames","$parent","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",50,"str","callee",51,"assignHasPendingExceptions","assign","preventExtensions","thrower",52,"polyfill",53,"SafeParseTuple","reviver","error","json","JSON","parse","err",54,"clean","sa",55,"isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers",56,"called",57,"forEach","list","context","forEachArray","forEachString","forEachObject","len","string","is-function",58,"alert","confirm","prompt",59,"trim","left","right",60,"arg","split","row","indexOf","toLowerCase","_componentJs2","_interopRequireDefault","_componentJs","_classCallCheck","BigPlayButton","_Button","player","buildCSSClass","__esModule","newObj","default","Constructor","instance","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_component","_objectAssign","Button","_Component","on","handleBlur","createEl","attributes","_objectAssign2","tabIndex","el","controlTextEl_","innerHTML","localize","controlText_","handleFocus","Events","_globalDocument2","Fn","handleKeyPress","event","which","preventDefault","handleClick","_interopRequireWildcard","_globalWindow2","_globalWindow","Dom","_utilsDomJs","Component","player_","id_","Guid","newGUID","el_","childIndex_","childNameIndex_","reportTouchActivity","trigger","bubbles","children_","dispose","removeElData","tagName","properties","languages","language","children","getChildById","addChild","child","componentName","componentClassName","componentClass","_utilsToTitleCaseJs2","ComponentClass","getComponent","component","removeChild","getChild","childFound","options_","parentOptions","_this","handleAdd","opts","playerOptions","_name","first","second","removeOnDispose","_this2","off","cleanRemover","guid","third","nodeName","one","_this3","_arguments","newFunc","ready","isReady_","triggerReady","readyQueue","readyQueue_","hasClass","classToCheck","hasElClass","addElClass","classToAdd","removeClass","classToRemove","removeElClass","show","dimension","num","skipListeners","widthOrHeight","val","style","emitTapEvents","touchStart","touchTimeThreshold","couldBeTap","touches","firstTouch","xdiff","pageX","touchDistance","tapMovementThreshold","noTap","touchTime","enableTouchActivity","report","reportUserActivity","touchHolding","clearInterval","setInterval","touchEnd","intervalId","comp","init","subObj","extend","_name2","_spacerControlsCustomControlSpacerJs","ControlBar","className","FullscreenToggle","isFullscreen","controlText","updateShowing","LiveDisplay","contentEl_","aria-live","MuteToggle","update","tech_","addClass","vol","muted","level","toMute","handlePlay","handlePause","PlayToggle","play","pause","_menuMenuJs2","_menuMenuJs","PlaybackRateMenuButton","_MenuButton","updateVisibility","appendChild","labelEl_","menu","setAttribute","playbackRate","currentRate","newRate","playbackRates","playbackRateSupported","updateLabel","PlaybackRateMenuItem","_MenuItem","label","rate","buffered","percentify","time","end","percent","part","width","bufferedEnd","_lodashCompatFunctionThrottle2","_lodashCompatFunctionThrottle","MouseTimeDisplay","controlBar","progressControl","handleMouseMove","duration","position","findElPosition","parentNode","newTime","_utilsFormatTimeJs","updateDataAttr","_mouseTimeDisplayJs","ProgressControl","_Slider","updateARIAAttributes","aria-label","scrubbing","getCache","currentTime","getPercent","toFixed","_utilsFormatTimeJs2","SeekBar","videoWasPlaying","stepForward","stepBack","CustomControlSpacer","_Spacer","Spacer","_TextTrackMenuItem","CaptionSettingsMenuItem","_captionSettingsMenuItemJs2","_captionSettingsMenuItemJs","_TextTrackButton","CaptionsButton","threshold","hide","items","kind","kind_","_textTrackMenuItemJs2","_textTrackMenuItemJs","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","ChaptersButton","createItems","tracks","textTracks","createMenu","track","cues","chaptersTrack","contentEl","cue","mi","_utilsFnJs","ChaptersTrackMenuItem","addEventListener","startTime","OffTextTrackMenuItem","selected","handleTracksChange","_offTextTrackMenuItemJs","TextTrackButton","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","_globalDocument","TextTrackMenuItem","onchange","Event","dispatchEvent","updateContent","DurationDisplay","formattedTime","remainingTime","localizedText","TimeDivider","_sliderSliderJs","_volumeLevelJs","volume","calculateDistance","VolumeBar","VolumeControl","_volumeBarJs","VolumeLevel","_volumeControlVolumeBarJs","VolumeMenuButton","inline","vertical","volumeBar","volumeUpdate","orientationClass","vb","./utils/dom.js",95,"_utilsEventsJs","EventTarget","allowedEvents_","ael","_utilsLog","_utilsLog2","subClassMethods","methods","FullscreenApi","apiMap","browserApi","LoadingSpinner","MediaError","message","errorTypes","_buttonJs2","_buttonJs","_utilsToTitleCaseJs","MenuButton","title","buttonPressed_","unpressButton","focus","MenuItem","_selected","Menu","unlockShowing","contentElType","append","_utilsBrowserJs","_utilsLogJs2","_utilsLogJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_controlBarControlBarJs","tagAttributes","getElAttributes","languagesToLower","_utilsMergeOptionsJs2","plugins","playerOptionsCopy","isAudio","controls","Player","styleEl_","players","removeAttribute","defaultsStyleEl","querySelector","height","aspectRatio","privDimension","_dimension","parsedVal","parseFloat","updateStyleEl_","fluid","bool","ratio","aspectRatio_","videoWidth","videoHeight","ratioParts","width_","height_","ratioMultiplier","loadTech_","techName","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","poster","src","cache_","techComponent","handleTechReady_","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechAbort_","handleTechStalled_","handleTechLoadedMetaData_","handleTechLoadedData_","handleTechTextTrackChange_","handleTechPosterChange_","usingNativeControls","addTechControlsListeners_","removeTechControlsListeners_","handleTechClick_","handleTechTouchMove_","handleTechTouchEnd_","hasStarted","_hasStarted","hasStarted_","handleTechTap_","userActive","handleTechTouchStart_","userWasActive","handleStageClick_","handleTechSuspend_","handleTechEmptied_","handleTechTimeUpdate_","handleTechRateChange_","handleTechVolumeChange_","techCall_","techGet_","isScrubbing","scrubbing_","seconds","bufferedPercent","_utilsBufferJs","percentAsDecimal","fsApi","fullscreenchange","documentFullscreenChange","requestFullscreen","supportsFullScreen","exitFullscreen","isFullWindow","docOrigOverflow","documentElement","overflow","exitFullWindow","tech","b","currentTech","sourceList_","currentType_","load","sourceTech","selectSource","controls_","usingNativeControls_","error_","_mediaErrorJs2","ended","seeking","seekable","userActivity_","userActive_","stopPropagation","listenForUserActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseDown","handleMouseUp","inactivityTimeout","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","languages_","toJSON","tagOptions","dataSetup","_safeParseTuple","baseOptions","hasChildNodes","childNodes","childName","_playerJs","PosterImage","fallbackImg_","setSrc","_windowLoaded","autoSetup","vids","getElementsByTagName","mediaEls","audios","mediaEl","getAttribute","autoSetupTimeout","vjs","Slider","bar","barName","playerEvent","progress","percentage","stopImmediatePropagation","vertical_","registerComponent","FlashRtmpDecorator","Flash","streamingFormats","streamToParts","parts","connection","stream","connEnd","streamBegin","lastIndexOf","substring","rtmpSourceHandler","attrUpper","attr","toUpperCase","_api","vjs_setProperty","vjs_getProperty","_tech","_utilsUrlJs","_Tech","setSource","swf","objId","eventProxyFunction","errorEventProxyFunction","flashVars","params","wmode","embed","setCurrentTime","vjs_pause","lastSeekTarget_","currentSource_","setPoster","_utilsTimeRangesJs","createTimeRange","ranges","enterFullScreen","_tech2","_readWrite","_readOnly","_createGetter","nativeSourceHandler","canHandleSource","guessMimeType","ext","Url","getFileExtension","video/flv","video/mp4","checkReady","onEvent","swfID","eventName","getEl","version","navigator","description","match","getEmbedCode","flashVarsString","paramsString","attrsString","flashvars","_techJs2","_techJs","Html5","currentSrc","initNetworkState_","handleLateInit_","nodesLength","nodes","node","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackChange_","handleTextTrackChange","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","emulatedTt","tt","handleTextTrackAdd_","clone","cloneNode","createElement","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","overwriteAttrs","_ret","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","paused","setVolume","setMuted","offsetWidth","offsetHeight","video","networkState","HAVE_METADATA","webkitEnterFullScreen","exitFullScreen","webkitExitFullScreen","_src","setPreload","autoplay","setAutoplay","setControls","setLoop","defaultMuted","played","removeTrack_","TEST_VID","srclang","isSupported","canPlayType","registerSourceHandler","canControlVolume","canControlPlaybackRate","supportsNativeTextTracks","supportsTextTracks","mpegurlRE","patchCanPlayType","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","firstChild","MediaLoader","_tracksTextTrackList","Tech","manualProgressOn","featuresTimeupdateEvents","nativeCaptions","nativeTextTracks","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","onDurationChange","duration_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","currentTimeInterval","manuallyTriggered","initTextTrackListeners","textTrackListChanges","script","textTracksChanges","updateDisplay","_tracksTextTrackList2","createTrackHelper","withSourceHandlers","handler","handlers","sourceHandlers","selectSourceHandler","sh","srcObj","sourceHandler_","disposeSourceHandler","handleSource","../tracks/text-track","../tracks/text-track-list","../utils/buffer.js","../utils/fn.js","../utils/log.js","../utils/time-ranges.js","global/document",113,"IS_IE8","prop","TextTrackCueList","get","length_","setCues_","cues_","oldLength","defineProp","parseInt","color","opacity","darkGray","lightGray","TextTrackDisplay","clearDisplay","updateForTrack","overrides","getValues","_i","cueDiv","displayState","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","bottom","fontFamily","fontVariant","fontMap","../component","../menu/menu-button.js","../menu/menu-item.js","../menu/menu.js",115,"TextTrackMode","disabled","hidden","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","querySelectorAll","trackObjs","TextTrackList","tracks_","_eventTarget2","change","addtrack","removetrack","_event","rtrack","getTrackById","getSelectedOptionValue","selectedOption","selectedOptions","selectedIndex","option","TextTrackSettings","persistTextTrackSettings","saveSettings","restoreSettings","textEdge","fgColor","bgColor","bgOpacity","setValues","values","setSelectedOption","_safeJsonParseTuple2","localStorage","getItem","removeItem","ttDisplay","safe-json-parse/tuple",119,"_textTrackCueList2","_textTrackCueList","_eventTarget","TextTrack","TextTrackEnum","TextTrackKind","mode","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","addCue","removeCue","removed","parseCues","srcContent","parser","loadTrack","crossOrigin","isCrossOrigin","_xhr2","responseBody","O","fromIndex","abs","webkitVersionMap","exec","USER_AGENT","IS_IPHONE","IS_IPAD","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","appleWebkitVersion","bufferedDuration","_timeRangesJs","_logJs","_logJs2","messages","Proxy","warn","defaultBehaviors","_taggedTemplateLiteralLoose","strings","raw","getElementById","propName","_tsml2","_templateObject","parent","getElData","elData","elIdAttr","element","classNames","knownBooleans","attrs","attrName","attrVal","onselectstart","getBoundingClientRect","box","top","docEl","clientLeft","scrollLeft","pageXOffset","getPointerPosition","boxH","boxX","pageY","unblockTextSelection","_tsml","elem","_handleMultipleEvents","dispatcher","hash","fixEvent","m","handlersCopy","isImmediatePropagationStopped","removeType","ownerDocument","isPropagationStopped","defaultPrevented","targetData","returnTrue","returnFalse","old","srcElement","relatedTarget","returnValue","cancelBubble","doc","clientX","_cleanUpEvents","detachEvent","ret","guide","h","floor",127,"_logType","console","log","history","argsArray","isPlain","mergeOptions","destination","lodash-compat/object/merge",130,"createStyleElement","createTimeRanges","createTimeRangesObj","getRange","fnName","valueIndex","rangeIndex","parseUrl","href","addToBody","div","details","protocol",134,"stylesheet","_utilsStylesheetJs","_player2","_player","_tracksTextTrackJs","_lodashCompatObjectMerge","_utilsCreateDeprecationProxyJs","_techHtml5Js","getPlayers","setTextContent","addLanguage"],"mappings":"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AAG9f,WAAA,kRAuBbgyC,EAAQS,eAAUnxB,EAAc,qNAkC9BplB,EAAKs2C,WAAA,WACL,MAAKN,GAAA,WAAAjjB,wZA2NP/yB,EAAQw2C,YAAG,SAAA51C,EAAOka,gHAsBlB9a,EAAQq/B,gBAAUr/B,EAAAi1C,iBAAc7V,EAAA6V;ArIhYhC;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AAC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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n","var isObject = require('../lang/isObject'),\n now = require('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","var debounce = require('./debounce'),\n isObject = require('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\nvar keys = require('object-keys');\n\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tif (typeof sym === 'string') { return false; }\n\tif (sym instanceof Symbol) { return false; }\n\tobj[sym] = 42;\n\tfor (sym in obj) { return false; }\n\tif (keys(obj).length !== 0) { return false; }\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar bind = require('function-bind');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = require('./hasSymbols')();\nvar toObject = Object;\nvar push = bind.call(Function.call, Array.prototype.push);\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable(source, syms[i])) {\n\t\t\t\t\tpush(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\ndefineProperties(implementation, {\n\timplementation: implementation,\n\tgetPolyfill: getPolyfill,\n\tshim: shim\n});\n\nmodule.exports = implementation;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$console: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$parent: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\treturn !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tif (Object.assign !== polyfill) {\n\t\tdefine(Object, { assign: polyfill });\n\t}\n\treturn polyfill;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n","module.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n","var isFunction = require('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n","var trim = require('trim')\n , forEach = require('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}, attributes={}) {\n props = assign({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = assign({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n let el = super.createEl(tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
    \n *
    Button
    \n *
    \n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // ->
    \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
    myButton
    \n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech_\n && this.player().tech_['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file mouse-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport throttle from 'lodash-compat/function/throttle';\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\nclass MouseTimeDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update(0, 0);\n\n player.on('ready', () => {\n this.on(player.controlBar.progressControl.el(), 'mousemove', throttle(Fn.bind(this, this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-mouse-display'\n });\n }\n\n handleMouseMove(event) {\n let duration = this.player_.duration();\n let newTime = this.calculateDistance(event) * duration;\n let position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n }\n\n update(newTime, position) {\n let time = formatTime(newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n }\n\n calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n }\n}\n\nComponent.registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexport default MouseTimeDisplay;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\nimport MouseTimeDisplay from './mouse-time-display.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: [\n 'seekBar'\n ]\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport assign from 'object.assign';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: [\n 'loadProgressBar',\n 'mouseTimeDisplay',\n 'playProgressBar'\n ],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl({\n className: this.buildCSSClass(),\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00',\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: `${this.localize('Duration Time')} 0:00`\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: `${this.localize('Remaining Time')} -0:00`,\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
    /
    '\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: [\n 'volumeLevel'\n ],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: [\n 'volumeBar'\n ]\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function(){\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function(){\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vb = new VolumeBar(this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
  • `\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n createEl(type, props, attrs) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech_) { this.tech_.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n }\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n handleTechProgress_() {\n this.trigger('progress');\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n handleTechTap_() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n handleTechTouchMove_() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n handleStageClick_() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n handleTechError_() {\n let error = this.tech_.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n handleTechSuspend_() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n handleTechAbort_() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n handleTechEmptied_() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n handleTechStalled_() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n handleTechLoadedData_() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n handleTechRateChange_() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n handleTechVolumeChange_() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName_} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName_} playback technology element.`, e);\n this.tech_.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall_('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall_('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet_('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet_('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall_('setMuted', muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet_('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet_('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    `;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport { isCrossOrigin } from '../utils/url.js';\nimport XHR from 'xhr';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n let opts = {\n uri: src\n };\n\n let crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n XHR(opts, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\nimport log from './log.js';\nimport tsml from 'tsml';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}, attributes={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn(tsml`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 ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\nexport function getPointerPosition(el, event) {\n let position = {};\n let box = findElPosition(el);\n let boxW = el.offsetWidth;\n let boxH = el.offsetHeight;\n\n let boxY = box.top;\n let boxX = box.left;\n let pageY = event.pageY;\n let pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' &&\n key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","import log from './log.js';\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\nexport function createTimeRanges(start, end){\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexport { createTimeRanges as createTimeRange };\n\nfunction createTimeRangesObj(ranges){\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex){\n if (rangeIndex === undefined) {\n log.warn(`DEPRECATED: Function '${fnName}' on 'TimeRanges' called without an index argument.`);\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex){\n if (index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is greater than or equal to the maximum bound (${maxIndex}).`);\n }\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nexport const isCrossOrigin = function(url) {\n let urlInfo = parseUrl(url);\n let winLoc = window.location;\n\n // IE8 protocol relative urls will return ':' for protocol\n let srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n let crossOrigin = (srcProtocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n return crossOrigin;\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\nimport TextTrack from './tracks/text-track.js';\n\nimport assign from 'object.assign';\nimport { createTimeRanges } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendFn from './extend.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\nimport xhr from 'xhr';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = document.querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n `);\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = extendFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = xhr;\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = TextTrack;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n"]} \ No newline at end of file diff --git a/ennstatus/static/js/video.js/src/js/tech/tech.js b/ennstatus/static/js/video.js/src/js/tech/tech.js --- a/ennstatus/static/js/video.js/src/js/tech/tech.js +++ b/ennstatus/static/js/video.js/src/js/tech/tech.js @@ -58,7 +58,7 @@ class Tech extends Component { } if (!this.featuresNativeTextTracks) { - this.emulateTextTracks(); + this.on('ready', this.emulateTextTracks); } this.initTextTrackListeners(); diff --git a/ennstatus/static/videos/subtitles/Tor_animation.lb.vtt b/ennstatus/static/videos/subtitles/Tor_animation.lb.vtt --- a/ennstatus/static/videos/subtitles/Tor_animation.lb.vtt +++ b/ennstatus/static/videos/subtitles/Tor_animation.lb.vtt @@ -1,43 +1,43 @@ WEBVTT 1 -00:00:02.000 --> 00:00:04.500 +00:00:00.660 --> 00:00:02.780 Den Internet ass scho laang zum Alldag ginn. 2 -00:00:04.700 --> 00:00:07.700 +00:00:03.120 --> 00:00:07.700 Mir deelen déi ganzen Zäit, Informatiounen iwwert eis selwer an aus eisem Privatliewen 3 -00:00:08.000 --> 00:00:11.000 +00:00:08.000 --> 00:00:09.960 wat mer iessen, Leit déi mer treffen, 4 -00:00:11.200 --> 00:00:14.200 +00:00:10.180 --> 00:00:12.480 wouhinner mer ginn a wat mer liesen. 5 -00:00:14.500 --> 00:00:16.400 +00:00:13.280 --> 00:00:14.640 Looss et mech méi genee erklären. 6 -00:00:16.600 --> 00:00:19.600 +00:00:14.920 --> 00:00:17.740 Genau an dësem Moment, wann ee probéiert eppes iwwert dech erauszefannen, 7 -00:00:19.800 --> 00:00:23.200 +00:00:18.060 --> 00:00:22.480 gesinn se deng réel Identitéit, wous de dech genee befënns, däi Betribssystem, 8 -00:00:23.400 --> 00:00:26.500 +00:00:22.800 --> 00:00:26.500 all d'Websäiten déi s de besicht hues, de Browser deen s de benotz fir am Internet ze surfen, 9 -00:00:26.700 --> 00:00:29.000 +00:00:26.700 --> 00:00:29.140 an esou vill méi Informatiounen iwwert dech an däi Liewen @@ -47,7 +47,7 @@ Wat s de wahrscheinlech net wollts mat Friemen deelen, 11 -00:00:32.200 --> 00:00:34.000 +00:00:31.700 --> 00:00:34.000 Friemer déi des Daten fir hier Zwecker ausnotze kennen. @@ -56,112 +56,112 @@ 00:00:34.500 --> 00:00:37.000 Dat geschitt net, wann een Tor benotzt! 13 -00:00:37.200 --> 00:00:40.800 +00:00:37.140 --> 00:00:40.840 Den Tor Browser schützt eis Privatsphär an eis Identitéit am Internet. 14 -00:00:41.000 --> 00:00:44.800 +00:00:41.560 --> 00:00:44.760 Tor séchert är Verbindung mat dräi Schichte vu Verschlësselung 15 -00:00:45.000 --> 00:00:49.300 +00:00:44.940 --> 00:00:49.760 a leet se duerch dräi fräiwëlleg bedriwwen Server iwwert ganz Welt, 16 -00:00:49.500 --> 00:00:54.500 +00:00:50.280 --> 00:00:53.520 wat et eis erlaabt anonym am Internet ze kommunizéieren. 17 -00:00:56.100 --> 00:00:57.400 +00:00:56.560 --> 00:00:58.280 Tor schützt och eis Daten 18 -00:00:57.600 --> 00:01:02.600 +00:00:58.400 --> 00:01:01.900 géint Masseniwwerwaachung vu Firmen oder Regierungen. 19 -00:01:02.800 --> 00:01:07.800 +00:01:02.880 --> 00:01:07.340 Vläit liefs de an engem Land, dat probéiert den Internet ze zenséieren an ze kontrolléieren. 20 -00:01:08.000 --> 00:01:13.200 +00:01:07.900 --> 00:01:11.800 Oder du wëlls einfach net, datt Grouss Firmen ee Gewënn aus denge perséinlechen Daten erzielen. 21 -00:01:13.800 --> 00:01:16.500 +00:01:12.880 --> 00:01:15.640 Tor mécht, datt all seng Benotzer d'selwecht ausgesinn 22 -00:01:16.700 --> 00:01:20.800 +00:01:15.920 --> 00:01:18.800 an dat bréngt den Nokucker duercherneen a mecht dech Anonym. 23 -0:01:21.900 --> 00:01:25.700 +00:01:19.500 --> 00:01:22.980 Wat also méi Leit d'Tor Netzwierk benotzen, em sou méi staark gëtt et. 24 -00:01:25.800 --> 00:01:29.800 +00:01:23.140 --> 00:01:27.800 Well et ass méi einfach sech an enger Grupp vu Leit ze verstoppen déi d'selwecht ausgesi wei ee selwer. 25 -00:01:30.000 --> 00:01:32.500 +00:01:28.700 --> 00:01:31.240 Du kanns Zensur ëmgoen ouni fäerten ze mussen, 26 -00:01:32.700 --> 00:01:36.100 +00:01:31.400 --> 00:01:34.100 datt den Zenséierer weess wat s du um Internet mëss. 27 -00:01:37.000 --> 00:01:39.200 +00:01:36.540 --> 00:01:39.440 Reklamme wäerten dech net méi Méint laang verfollegen, 28 -00:01:39.400 --> 00:01:43.500 +00:01:39.640 --> 00:01:41.300 well s du eemol op e Produit geklickt hues. 29 -00:01:44.500 --> 00:01:49.200 +00:01:43.880 --> 00:01:47.380 An deem s de Tor benotz, wäerten d'Websäiten déi s du besichs net méi wësse ween s du bass, 30 -00:01:49.800 --> 00:01:52.100 -oder vu wat fir engem Deel aus der Welt s +00:01:47.540 --> 00:01:49.760 +vu wat fir engem Deel aus der Welt s du grad kenns, 31 -00:01:52.800 --> 00:01:54.400 +00:01:49.920 --> 00:01:51.920 ausser du loggs dech an a sees et hinnen. 32 -00:01:55.200 --> 00:01:56.400 +00:01:54.200 --> 00:01:55.840 An deem s de Tor erofluets a benotz, 33 -00:01:56.800 --> 00:01:59.100 +00:01:56.200 --> 00:01:58.560 kanns du Leit schützen déi Anonymitéit brauchen. 34 -00:01:59.800 --> 00:02:03.900 +00:01:58.880 --> 00:02:01.640 wéi Aktivisten, Journalisten a Blogger. 35 -00:02:04.200 --> 00:02:15.200 +00:02:02.000 --> 00:02:07.000 Download a benotz Tor! Oder bedreif e Relais an erziel aneren dovunner! diff --git a/ennstatus/templates/donate/index.html b/ennstatus/templates/donate/index.html --- a/ennstatus/templates/donate/index.html +++ b/ennstatus/templates/donate/index.html @@ -38,7 +38,7 @@
    -

    Wire Transfer

    +

    Wire Transfer

    @@ -47,6 +47,9 @@ IBAN: LU65 0019 4055 6782 7000

    +
    +
    or via our trusted Partner Organization
    +

    Account holder: Chaos Computer Club Lëtzebuerg A.S.B.L.
    @@ -94,7 +97,22 @@

    -

    PayPal high fees

    +

    Ethereum

    +
    +
    +
    +

    + Ether Address: 0x032840e0e6bef8c5d6e95229672487ea2ba2475b + +

    +
    +
    +
    +
    +
    +
    +
    +

    PayPal

    Use your existing PayPal account or check-out as guest. (Credit cards accepted)

    @@ -107,31 +125,5 @@
    -
    -
    -
    -

    Flattr

    -
    -

    Flattr us!

    - - Flattr this - -
    -
    -
    -
    -
    -
    -
    -

    Patreon

    -
    -

    Support us!

    - - Patreon - -
    -
    -
    -
    {% endblock %} diff --git a/ennstatus/templates/root/bridgeprogram.html b/ennstatus/templates/root/bridgeprogram.html --- a/ennstatus/templates/root/bridgeprogram.html +++ b/ennstatus/templates/root/bridgeprogram.html @@ -98,7 +98,6 @@

    More information

    You want to know more about our work?

    -

    Our bridge operator will give you further information about the project.

    -

    Get in touch: : bridges@enn.lu GPG: 0x9C5D0F3B

    +

    Our bridge operator will give you further information about the project.

    {% endblock %} diff --git a/ennstatus/templates/root/member.html b/ennstatus/templates/root/member.html --- a/ennstatus/templates/root/member.html +++ b/ennstatus/templates/root/member.html @@ -65,7 +65,7 @@ Send the membership form to one of our email or snailmail addresses. - Pay your annual membership fee. Use one of the payment methods (except Flattr or BPM Points) + Pay your annual membership fee. Use one of the payment methods. specified on our donations page. Try to include your username as a statement if possible! diff --git a/ennstatus/templates/root/mirrors.html b/ennstatus/templates/root/mirrors.html --- a/ennstatus/templates/root/mirrors.html +++ b/ennstatus/templates/root/mirrors.html @@ -44,8 +44,8 @@
    tails.enn.lu
    A Tails Download mirror. Tails is a live operating system, that you can start on almost any computer from a DVD, USB stick, or SD card. It aims at preserving your privacy and anonymity. Learn more about Tails

    -
    globe.enn.lu
    -
    Globe is a Tor relay and bridge explorer.
    +
    atlas.enn.lu
    +
    Atlas is a Tor relay and bridge explorer.
    {% endblock %} diff --git a/ennstatus/templates/root/partners.html b/ennstatus/templates/root/partners.html --- a/ennstatus/templates/root/partners.html +++ b/ennstatus/templates/root/partners.html @@ -36,15 +36,17 @@
    Chaos Computer Club Lëtzebuerg
    -
    +
    Zwiebelfreunde eV
    -
    +
    +
    +
    Pirate Partei -
    -
    - FlokiNET -
    +
    +
    + FlokiNET +

    Becoming a Partner?

    We'd be glad to see you or your organization/company as our partner. If you are interested in supporting us by one of the following means, don't hesitate to contact us. diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ def _get_requirements(): setup(name='Ennstatus', - version='5.7.0', + version='5.7.1', description=('Ennstatus provides the user with vital information about ' 'the status of the organizations Tor servers.'), author='Frënn vun der Ënn',