diff --git a/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.js b/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.js index 26b951ec72bf5..38fba073cf5cb 100644 --- a/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.js +++ b/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.js @@ -3,7 +3,7 @@ * http://www.mediaelementjs.com/ * * Wrapper that mimics native HTML5 MediaElement (audio and video) - * using a variety of technologies (pure JavaScript, Flash, iframe) + * using a variety of technologies (pure JavaScript, iframe) * * Copyright 2010-2017, John Dyer (http://j.hn/) * License: MIT @@ -284,6 +284,113 @@ module.exports = win; })(this); },{}],5:[function(_dereq_,module,exports){ +!function(root, factory) { + "function" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set + define([], function() { + return root.svg4everybody = factory(); + }) : "object" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory() : root.svg4everybody = factory(); +}(this, function() { + /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */ + function embed(parent, svg, target) { + // if the target exists + if (target) { + // create a document fragment to hold the contents of the target + var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute("viewBox") && target.getAttribute("viewBox"); + // conditionally set the viewBox on the svg + viewBox && svg.setAttribute("viewBox", viewBox); + // copy the contents of the clone into the fragment + for (// clone the target + var clone = target.cloneNode(!0); clone.childNodes.length; ) { + fragment.appendChild(clone.firstChild); + } + // append the fragment into the svg + parent.appendChild(fragment); + } + } + function loadreadystatechange(xhr) { + // listen to changes in the request + xhr.onreadystatechange = function() { + // if the request is ready + if (4 === xhr.readyState) { + // get the cached html document + var cachedDocument = xhr._cachedDocument; + // ensure the cached html document based on the xhr response + cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(""), + cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item + xhr._embeds.splice(0).map(function(item) { + // get the cached target + var target = xhr._cachedTarget[item.id]; + // ensure the cached target + target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), + // embed the target into the svg + embed(item.parent, item.svg, target); + }); + } + }, // test the ready state change immediately + xhr.onreadystatechange(); + } + function svg4everybody(rawopts) { + function oninterval() { + // while the index exists in the live collection + for (// get the cached index + var index = 0; index < uses.length; ) { + // get the current + var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute("xlink:href") || use.getAttribute("href"); + if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), + svg && src) { + if (polyfill) { + if (!opts.validate || opts.validate(src, svg, use)) { + // remove the element + parent.removeChild(use); + // parse the src and get the url and id + var srcSplit = src.split("#"), url = srcSplit.shift(), id = srcSplit.join("#"); + // if the link is external + if (url.length) { + // get the cached xhr request + var xhr = requests[url]; + // ensure the xhr request exists + xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open("GET", url), xhr.send(), + xhr._embeds = []), // add the svg and id as an item to the xhr embeds list + xhr._embeds.push({ + parent: parent, + svg: svg, + id: id + }), // prepare the xhr ready state change event + loadreadystatechange(xhr); + } else { + // embed the local id into the svg + embed(parent, svg, document.getElementById(id)); + } + } else { + // increase the index when the previous value was not "valid" + ++index, ++numberOfSvgUseElementsToBypass; + } + } + } else { + // increase the index when the previous value was not "valid" + ++index; + } + } + // continue the interval + (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67); + } + var polyfill, opts = Object(rawopts), newerIEUA = /\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/, webkitUA = /\bAppleWebKit\/(\d+)\b/, olderEdgeUA = /\bEdge\/12\.(\d+)\b/, edgeUA = /\bEdge\/.(\d+)\b/, inIframe = window.top !== window.self; + polyfill = "polyfill" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe; + // create xhr requests object + var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName("use"), numberOfSvgUseElementsToBypass = 0; + // conditionally start the interval if the polyfill is active + polyfill && oninterval(); + } + function getSVGAncestor(node) { + for (var svg = node; "svg" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {} + return svg; + } + return svg4everybody; +}); +},{}],6:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -292,13 +399,13 @@ Object.defineProperty(exports, "__esModule", { var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _en = _dereq_(15); +var _en = _dereq_(16); -var _general = _dereq_(27); +var _general = _dereq_(26); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -550,7 +657,7 @@ if (typeof mejsL10n !== 'undefined') { exports.default = i18n; -},{"15":15,"27":27,"7":7}],6:[function(_dereq_,module,exports){ +},{"16":16,"26":26,"8":8}],7:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -567,17 +674,17 @@ var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _general = _dereq_(27); +var _general = _dereq_(26); var _media2 = _dereq_(28); -var _renderer = _dereq_(8); +var _renderer = _dereq_(9); -var _constants = _dereq_(25); +var _constants = _dereq_(24); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -595,11 +702,9 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { t.defaults = { renderers: [], - fakeNodeName: 'mediaelementwrapper', + fakeNodeName: 'div', - pluginPath: 'build/', - - shimScriptAccess: 'sameDomain' + iconSprite: 'mejs-controls.svg' }; options = Object.assign(t.defaults, options); @@ -630,6 +735,8 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { t.mediaElement.originalNode.setAttribute('preload', 'none'); } + t.mediaElement.originalNode.setAttribute('tabindex', -1); + t.mediaElement.originalNode.parentNode.insertBefore(t.mediaElement, t.mediaElement.originalNode); t.mediaElement.appendChild(t.mediaElement.originalNode); @@ -655,13 +762,11 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { }; var mediaFiles = void 0; - if (sources !== null) { mediaFiles = sources; } else if (t.mediaElement.originalNode !== null) { mediaFiles = []; - switch (t.mediaElement.originalNode.nodeName.toLowerCase()) { case 'iframe': mediaFiles.push({ @@ -703,15 +808,11 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { t.mediaElement.rendererName = null; t.mediaElement.changeRenderer = function (rendererName, mediaFiles) { - var t = _this, media = Object.keys(mediaFiles[0]).length > 2 ? mediaFiles[0] : mediaFiles[0].src; if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && t.mediaElement.renderer.name === rendererName) { t.mediaElement.renderer.pause(); - if (t.mediaElement.renderer.stop) { - t.mediaElement.renderer.stop(); - } t.mediaElement.renderer.show(); t.mediaElement.renderer.setSrc(media); return true; @@ -719,9 +820,6 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) { t.mediaElement.renderer.pause(); - if (t.mediaElement.renderer.stop) { - t.mediaElement.renderer.stop(); - } t.mediaElement.renderer.hide(); } @@ -795,7 +893,6 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { }, assignGettersSetters = function assignGettersSetters(propName) { if (propName !== 'src') { - var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1), getFn = function getFn() { return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['get' + capName] === 'function' ? t.mediaElement.renderer['get' + capName]() : null; @@ -816,7 +913,6 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { }, setSrc = function setSrc(value) { var mediaFiles = []; - if (typeof value === 'string') { mediaFiles.push({ src: value, @@ -839,7 +935,6 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { src: _src2, type: (_type3 === '' || _type3 === null || _type3 === undefined) && _src2 ? (0, _media2.getTypeFromFile)(_src2) : _type3 }); - mediaFiles.push(_media); } } @@ -882,11 +977,13 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { } }); } + return response; } else { - t.mediaElement.renderer[methodName](args); + return t.mediaElement.renderer[methodName](args); } } catch (e) { t.mediaElement.generateError(e, mediaFiles); + throw e; } }, assignMethods = function assignMethods(methodName) { @@ -897,13 +994,14 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer[methodName] === 'function') { if (t.mediaElement.promises.length) { - Promise.all(t.mediaElement.promises).then(function () { - triggerAction(methodName, args); + return Promise.all(t.mediaElement.promises).then(function () { + return triggerAction(methodName, args); }).catch(function (e) { t.mediaElement.generateError(e, mediaFiles); + return Promise.reject(e); }); } else { - triggerAction(methodName, args); + return triggerAction(methodName, args); } } return null; @@ -911,9 +1009,9 @@ var MediaElement = function MediaElement(idOrNode, options, sources) { }; addProperty(t.mediaElement, 'src', getSrc, setSrc); + t.mediaElement.getSrc = getSrc; t.mediaElement.setSrc = setSrc; - for (var _i3 = 0, total = props.length; _i3 < total; _i3++) { assignGettersSetters(props[_i3]); } @@ -1003,7 +1101,7 @@ _mejs2.default.MediaElement = MediaElement; exports.default = MediaElement; -},{"2":2,"25":25,"27":27,"28":28,"3":3,"7":7,"8":8}],7:[function(_dereq_,module,exports){ +},{"2":2,"24":24,"26":26,"28":28,"3":3,"8":8,"9":9}],8:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -1018,7 +1116,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de var mejs = {}; -mejs.version = '4.2.17'; +mejs.version = '7.1.0'; mejs.html5media = { properties: ['volume', 'src', 'currentTime', 'muted', 'duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable', 'currentSrc', 'preload', 'bufferedBytes', 'bufferedTime', 'initialTime', 'startOffsetTime', 'defaultPlaybackRate', 'playbackRate', 'played', 'autoplay', 'loop', 'controls'], @@ -1035,7 +1133,7 @@ _window2.default.mejs = mejs; exports.default = mejs; -},{"3":3}],8:[function(_dereq_,module,exports){ +},{"3":3}],9:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -1047,7 +1145,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); @@ -1083,7 +1181,7 @@ var Renderer = function () { renderers = renderers.length ? renderers : this.order; if (!renderersLength) { - var rendererIndicator = [/^(html5|native)/i, /^flash/i, /iframe$/i], + var rendererIndicator = [/^(html5|native)/i, /iframe$/i], rendererRanking = function rendererRanking(renderer) { for (var i = 0, total = rendererIndicator.length; i < total; i++) { if (rendererIndicator[i].test(renderer)) { @@ -1104,6 +1202,7 @@ var Renderer = function () { if (_renderer !== null && _renderer !== undefined) { for (var j = 0, jl = mediaFiles.length; j < jl; j++) { + if (typeof _renderer.canPlayType === 'function' && typeof mediaFiles[j].type === 'string' && _renderer.canPlayType(mediaFiles[j].type)) { return { rendererName: _renderer.name, @@ -1149,35 +1248,33 @@ var renderer = exports.renderer = new Renderer(); _mejs2.default.Renderers = renderer; -},{"7":7}],9:[function(_dereq_,module,exports){ +},{"8":8}],10:[function(_dereq_,module,exports){ 'use strict'; -var _window = _dereq_(3); - -var _window2 = _interopRequireDefault(_window); - var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _i18n = _dereq_(5); +var _i18n = _dereq_(6); var _i18n2 = _interopRequireDefault(_i18n); -var _player = _dereq_(16); +var _player = _dereq_(17); var _player2 = _interopRequireDefault(_player); -var _constants = _dereq_(25); +var _constants = _dereq_(24); var Features = _interopRequireWildcard(_constants); -var _general = _dereq_(27); +var _general = _dereq_(26); -var _dom = _dereq_(26); +var _dom = _dereq_(25); var _media = _dereq_(28); +var _generate = _dereq_(27); + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -1195,8 +1292,6 @@ Object.assign(_player2.default.prototype, { isNativeFullScreen: false, - isInIframe: false, - isPluginClickThroughCreated: false, fullscreenMode: '', @@ -1208,16 +1303,13 @@ Object.assign(_player2.default.prototype, { return; } - player.isInIframe = _window2.default.location !== _window2.default.parent.location; - player.detectFullscreenMode(); var t = this, fullscreenTitle = (0, _general.isString)(t.options.fullscreenText) ? t.options.fullscreenText : _i18n2.default.t('mejs.fullscreen'), fullscreenBtn = _document2.default.createElement('div'); - fullscreenBtn.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'fullscreen-button'; - fullscreenBtn.innerHTML = ''; + fullscreenBtn.innerHTML = (0, _generate.generateControlButton)(t.id, fullscreenTitle, fullscreenTitle, '' + t.media.options.iconSprite, ['icon-fullscreen', 'icon-unfullscreen'], '' + t.options.classPrefix); t.addControlElement(fullscreenBtn, 'fullscreen'); fullscreenBtn.addEventListener('click', function () { @@ -1307,8 +1399,8 @@ Object.assign(_player2.default.prototype, { return; } - if (t.options.useFakeFullscreen === false && (Features.IS_IOS || Features.IS_SAFARI) && Features.HAS_IOS_FULLSCREEN && typeof t.media.originalNode.webkitEnterFullscreen === 'function' && t.media.originalNode.canPlayType((0, _media.getTypeFromFile)(t.media.getSrc()))) { - t.media.originalNode.webkitEnterFullscreen(); + if (t.options.useFakeFullscreen === false && (Features.IS_IOS || Features.IS_SAFARI) && Features.HAS_IOS_FULLSCREEN && typeof t.node.webkitEnterFullscreen === 'function' && t.node.canPlayType((0, _media.getTypeFromFile)(t.media.getSrc()))) { + t.node.webkitEnterFullscreen(); return; } @@ -1320,40 +1412,12 @@ Object.assign(_player2.default.prototype, { if (t.fullscreenMode === 'native-native' || t.fullscreenMode === 'plugin-native') { Features.requestFullScreen(t.getElement(t.container)); - - if (t.isInIframe) { - setTimeout(function checkFullscreen() { - - if (t.isNativeFullScreen) { - var percentErrorMargin = 0.002, - windowWidth = _window2.default.innerWidth || _document2.default.documentElement.clientWidth || _document2.default.body.clientWidth, - screenWidth = screen.width, - absDiff = Math.abs(screenWidth - windowWidth), - marginError = screenWidth * percentErrorMargin; - - if (absDiff > marginError) { - t.exitFullScreen(); - } else { - setTimeout(checkFullscreen, 500); - } - } - }, 1000); - } } t.getElement(t.container).style.width = '100%'; t.getElement(t.container).style.height = '100%'; - t.containerSizeTimeout = setTimeout(function () { - t.getElement(t.container).style.width = '100%'; - t.getElement(t.container).style.height = '100%'; - t.setControlsSize(); - }, 500); - - if (isNative) { - t.node.style.width = '100%'; - t.node.style.height = '100%'; - } else { + if (isNative) {} else { var elements = t.getElement(t.container).querySelectorAll('embed, object, video'), _total = elements.length; for (var i = 0; i < _total; i++) { @@ -1362,7 +1426,7 @@ Object.assign(_player2.default.prototype, { } } - if (t.options.setDimensions && typeof t.media.setSize === 'function') { + if (t.options.setDimensions && typeof t.media.setSize === 'function' && !isNative) { t.media.setSize(screen.width, screen.height); } @@ -1378,8 +1442,14 @@ Object.assign(_player2.default.prototype, { (0, _dom.addClass)(t.fullscreenBtn, t.options.classPrefix + 'unfullscreen'); } - t.setControlsSize(); t.isFullScreen = true; + t.setControlsSize(); + + if (!isNative) { + requestAnimationFrame(function () { + t.setPlayerSize(screen.width, screen.height); + }); + } var zoomFactor = Math.min(screen.width / t.width, screen.height / t.height), captionText = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-text'); @@ -1444,6 +1514,8 @@ Object.assign(_player2.default.prototype, { t.setControlsSize(); t.isFullScreen = false; + t.setPlayerSize(t.normalWidth, t.normalHeight); + var captionText = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-text'); if (captionText) { captionText.style.fontSize = ''; @@ -1455,24 +1527,26 @@ Object.assign(_player2.default.prototype, { } }); -},{"16":16,"2":2,"25":25,"26":26,"27":27,"28":28,"3":3,"5":5}],10:[function(_dereq_,module,exports){ +},{"17":17,"2":2,"24":24,"25":25,"26":26,"27":27,"28":28,"6":6}],11:[function(_dereq_,module,exports){ 'use strict'; var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _player = _dereq_(16); +var _player = _dereq_(17); var _player2 = _interopRequireDefault(_player); -var _i18n = _dereq_(5); +var _i18n = _dereq_(6); var _i18n2 = _interopRequireDefault(_i18n); -var _general = _dereq_(27); +var _general = _dereq_(26); + +var _dom = _dereq_(25); -var _dom = _dereq_(26); +var _generate = _dereq_(27); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -1491,7 +1565,7 @@ Object.assign(_player2.default.prototype, { play = _document2.default.createElement('div'); play.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'playpause-button ' + t.options.classPrefix + 'play'; - play.innerHTML = ''; + play.innerHTML = (0, _generate.generateControlButton)(t.id, pauseTitle, playTitle, '' + t.media.options.iconSprite, ['icon-play', 'icon-pause', 'icon-replay'], '' + t.options.classPrefix); play.addEventListener('click', function () { if (t.paused) { t.play(); @@ -1504,28 +1578,29 @@ Object.assign(_player2.default.prototype, { t.addControlElement(play, 'playpause'); function togglePlayPause(which) { + (0, _dom.removeClass)(play, t.options.classPrefix + 'play'); + (0, _dom.removeClass)(play, t.options.classPrefix + 'replay'); + (0, _dom.removeClass)(play, t.options.classPrefix + 'pause'); + if ('play' === which) { - (0, _dom.removeClass)(play, t.options.classPrefix + 'play'); - (0, _dom.removeClass)(play, t.options.classPrefix + 'replay'); (0, _dom.addClass)(play, t.options.classPrefix + 'pause'); playBtn.setAttribute('title', pauseTitle); playBtn.setAttribute('aria-label', pauseTitle); - } else { - - (0, _dom.removeClass)(play, t.options.classPrefix + 'pause'); - (0, _dom.removeClass)(play, t.options.classPrefix + 'replay'); + } else if ('pse' === which) { (0, _dom.addClass)(play, t.options.classPrefix + 'play'); playBtn.setAttribute('title', playTitle); playBtn.setAttribute('aria-label', playTitle); + } else { + (0, _dom.addClass)(play, t.options.classPrefix + 'replay'); + playBtn.setAttribute('title', playTitle); + playBtn.setAttribute('aria-label', playTitle); } } togglePlayPause('pse'); media.addEventListener('loadedmetadata', function () { - if (media.rendererName.indexOf('flash') === -1) { - togglePlayPause('pse'); - } + togglePlayPause('pse'); }); media.addEventListener('play', function () { togglePlayPause('play'); @@ -1538,36 +1613,34 @@ Object.assign(_player2.default.prototype, { }); media.addEventListener('ended', function () { if (!player.options.loop) { - (0, _dom.removeClass)(play, t.options.classPrefix + 'pause'); - (0, _dom.removeClass)(play, t.options.classPrefix + 'play'); - (0, _dom.addClass)(play, t.options.classPrefix + 'replay'); - playBtn.setAttribute('title', playTitle); - playBtn.setAttribute('aria-label', playTitle); + setTimeout(function () { + togglePlayPause('replay'); + }, 0); } }); } }); -},{"16":16,"2":2,"26":26,"27":27,"5":5}],11:[function(_dereq_,module,exports){ +},{"17":17,"2":2,"25":25,"26":26,"27":27,"6":6}],12:[function(_dereq_,module,exports){ 'use strict'; var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _player = _dereq_(16); +var _player = _dereq_(17); var _player2 = _interopRequireDefault(_player); -var _i18n = _dereq_(5); +var _i18n = _dereq_(6); var _i18n2 = _interopRequireDefault(_i18n); -var _constants = _dereq_(25); +var _constants = _dereq_(24); var _time = _dereq_(30); -var _dom = _dereq_(26); +var _dom = _dereq_(25); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -1617,7 +1690,7 @@ Object.assign(_player2.default.prototype, { } setTimeout(function () { - player.setCurrentTime(newTime); + player.setCurrentTime(newTime, true); }, 0); setTimeout(function () { @@ -1647,7 +1720,7 @@ Object.assign(_player2.default.prototype, { } setTimeout(function () { - player.setCurrentTime(newTime); + player.setCurrentTime(newTime, true); }, 0); setTimeout(function () { @@ -1814,7 +1887,7 @@ Object.assign(_player2.default.prototype, { }, handleMouseup = function handleMouseup() { if (mouseIsDown && t.getCurrentTime() !== null && t.newTime.toFixed(4) !== t.getCurrentTime().toFixed(4)) { - t.setCurrentTime(t.newTime); + t.setCurrentTime(t.newTime, true); t.setCurrentRailHandle(t.newTime); t.updateCurrent(t.newTime); } @@ -1884,13 +1957,10 @@ Object.assign(_player2.default.prototype, { seekTime = duration; break; case 13: - case 32: - if (_constants.IS_FIREFOX) { - if (t.paused) { - t.play(); - } else { - t.pause(); - } + if (t.paused) { + t.play(); + } else { + t.pause(); } return; default: @@ -1904,7 +1974,7 @@ Object.assign(_player2.default.prototype, { } setTimeout(function () { - t.setCurrentTime(seekTime); + t.setCurrentTime(seekTime, true); }, 0); if (seekTime < t.getDuration() && !startedPaused) { @@ -2118,20 +2188,24 @@ Object.assign(_player2.default.prototype, { } }); -},{"16":16,"2":2,"25":25,"26":26,"30":30,"5":5}],12:[function(_dereq_,module,exports){ +},{"17":17,"2":2,"24":24,"25":25,"30":30,"6":6}],13:[function(_dereq_,module,exports){ 'use strict'; var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _player = _dereq_(16); +var _player = _dereq_(17); var _player2 = _interopRequireDefault(_player); +var _i18n = _dereq_(6); + +var _i18n2 = _interopRequireDefault(_i18n); + var _time = _dereq_(30); -var _dom = _dereq_(26); +var _dom = _dereq_(25); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -2149,7 +2223,7 @@ Object.assign(_player2.default.prototype, { time.className = t.options.classPrefix + 'time'; time.setAttribute('role', 'timer'); time.setAttribute('aria-live', 'off'); - time.innerHTML = '' + (0, _time.secondsToTimeCode)(0, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength, player.options.timeFormat) + ''; + time.innerHTML = '' + _i18n2.default.t('mejs.current') + '' + (0, _time.secondsToTimeCode)(0, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength, player.options.timeFormat) + ''; t.addControlElement(time, 'current'); player.updateCurrent(); @@ -2168,7 +2242,7 @@ Object.assign(_player2.default.prototype, { currTime = controls.lastChild.querySelector('.' + t.options.classPrefix + 'currenttime'); if (currTime) { - controls.querySelector('.' + t.options.classPrefix + 'time').innerHTML += t.options.timeAndDurationSeparator + '' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat) + ''); + controls.querySelector('.' + t.options.classPrefix + 'time').innerHTML += t.options.timeAndDurationSeparator + '' + _i18n2.default.t('mejs.duration') + '' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat) + ''); } else { if (controls.querySelector('.' + t.options.classPrefix + 'currenttime')) { (0, _dom.addClass)(controls.querySelector('.' + t.options.classPrefix + 'currenttime').parentNode, t.options.classPrefix + 'currenttime-container'); @@ -2176,7 +2250,7 @@ Object.assign(_player2.default.prototype, { var duration = _document2.default.createElement('div'); duration.className = t.options.classPrefix + 'time ' + t.options.classPrefix + 'duration-container'; - duration.innerHTML = '' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat) + ''); + duration.innerHTML = '' + _i18n2.default.t('mejs.duration') + '' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat) + ''); t.addControlElement(duration, 'duration'); } @@ -2240,790 +2314,675 @@ Object.assign(_player2.default.prototype, { } }); -},{"16":16,"2":2,"26":26,"30":30}],13:[function(_dereq_,module,exports){ +},{"17":17,"2":2,"25":25,"30":30,"6":6}],14:[function(_dereq_,module,exports){ 'use strict'; var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _i18n = _dereq_(5); +var _i18n = _dereq_(6); var _i18n2 = _interopRequireDefault(_i18n); -var _player = _dereq_(16); +var _player = _dereq_(17); var _player2 = _interopRequireDefault(_player); -var _time = _dereq_(30); +var _general = _dereq_(26); -var _general = _dereq_(27); +var _dom = _dereq_(25); -var _dom = _dereq_(26); +var _generate = _dereq_(27); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } Object.assign(_player.config, { - startLanguage: '', + autoplayCaptionLanguage: null, - tracksText: null, + defaultTrackLine: -3, - chaptersText: null, + tracksText: null, - tracksAriaLive: false, + chaptersText: null, - hideCaptionsButtonWhenEmpty: true, + chaptersLanguage: null, - toggleCaptionsButtonWhenOnlyOne: false, + hideCaptionsButtonWhenEmpty: true, - slidesSelector: '' + toggleCaptionsButtonWhenOnlyOne: false }); Object.assign(_player2.default.prototype, { - hasChapters: false, + hasChapters: false, - buildtracks: function buildtracks(player, controls, layers, media) { + buildtracks: function buildtracks(player, controls) { + this.initTracks(player); - this.findTracks(); + if (!player.tracks.length && (!player.trackFiles || !(player.trackFiles.length === 0))) { + return; + } - if (!player.tracks.length && (!player.trackFiles || !player.trackFiles.length === 0)) { - return; - } + var t = this, + tracksTitle = (0, _general.isString)(t.options.tracksText) ? t.options.tracksText : _i18n2.default.t('mejs.captions-subtitles'), + chaptersTitle = (0, _general.isString)(t.options.chaptersText) ? t.options.chaptersText : _i18n2.default.t('mejs.captions-chapters'); - var t = this, - attr = t.options.tracksAriaLive ? ' role="log" aria-live="assertive" aria-atomic="false"' : '', - tracksTitle = (0, _general.isString)(t.options.tracksText) ? t.options.tracksText : _i18n2.default.t('mejs.captions-subtitles'), - chaptersTitle = (0, _general.isString)(t.options.chaptersText) ? t.options.chaptersText : _i18n2.default.t('mejs.captions-chapters'), - total = player.trackFiles === null ? player.tracks.length : player.trackFiles.length; + t.hideAllTracks(); - if (t.domNode.textTracks) { - for (var i = t.domNode.textTracks.length - 1; i >= 0; i--) { - t.domNode.textTracks[i].mode = 'hidden'; - } - } + t.clearTrackHtml(player); - t.cleartracks(player); + player.captionsButton = _document2.default.createElement('div'); + player.captionsButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'captions-button'; + player.captionsButton.innerHTML = (0, _generate.generateControlButton)(t.id, tracksTitle, tracksTitle, '' + t.media.options.iconSprite, ['icon-captions'], '' + t.options.classPrefix) + ('
') + ('
    ') + ('
  • ') + ('' + ('') + '
  • ' + '
' + '
'; - player.captions = _document2.default.createElement('div'); - player.captions.className = t.options.classPrefix + 'captions-layer ' + t.options.classPrefix + 'layer'; - player.captions.innerHTML = '
' + ('') + '
'; - player.captions.style.display = 'none'; - layers.insertBefore(player.captions, layers.firstChild); + t.addControlElement(player.captionsButton, 'tracks'); - player.captionsText = player.captions.querySelector('.' + t.options.classPrefix + 'captions-text'); + player.captionsButton.querySelector('.' + t.options.classPrefix + 'captions-selector-input').disabled = false; - player.captionsButton = _document2.default.createElement('div'); - player.captionsButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'captions-button'; - player.captionsButton.innerHTML = '' + ('
') + ('
    ') + ('
  • ') + ('' + ('') + '
  • ' + '
' + '
'; + player.chaptersButton = _document2.default.createElement('div'); + player.chaptersButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'chapters-button'; + player.chaptersButton.innerHTML = (0, _generate.generateControlButton)(t.id, chaptersTitle, chaptersTitle, '' + t.media.options.iconSprite, ['icon-chapters'], '' + t.options.classPrefix) + ('
') + ('
    ') + '
    '; - t.addControlElement(player.captionsButton, 'tracks'); + var subtitles = t.getSubtitles(); + var chapters = t.getChapters(); - player.captionsButton.querySelector('.' + t.options.classPrefix + 'captions-selector-input').disabled = false; + if (chapters.length > 0 && !controls.querySelector('.' + t.options.classPrefix + 'chapter-selector')) { + player.captionsButton.parentNode.insertBefore(player.chaptersButton, player.captionsButton); + } - player.chaptersButton = _document2.default.createElement('div'); - player.chaptersButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'chapters-button'; - player.chaptersButton.innerHTML = '' + ('
    ') + ('
      ') + '
      '; + for (var i = 0; i < subtitles.length; i++) { + player.addTrackButton(subtitles[i]); + if (subtitles[i].isLoaded) { + t.enableTrackButton(subtitles[i]); + } + } - var subtitleCount = 0; + player.trackToLoad = -1; + player.selectedTrack = null; + player.isLoadingTrack = false; - for (var _i = 0; _i < total; _i++) { - var kind = player.tracks[_i].kind, - src = player.tracks[_i].src; - if (src.trim()) { - if (kind === 'subtitles' || kind === 'captions') { - subtitleCount++; - } else if (kind === 'chapters' && !controls.querySelector('.' + t.options.classPrefix + 'chapter-selector')) { - player.captionsButton.parentNode.insertBefore(player.chaptersButton, player.captionsButton); - } - } - } + var inEvents = ['mouseenter', 'focusin'], + outEvents = ['mouseleave', 'focusout']; - player.trackToLoad = -1; - player.selectedTrack = null; - player.isLoadingTrack = false; + if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitles.length === 1) { + player.captionsButton.classList.add(t.options.classPrefix + 'captions-button-toggle'); + player.captionsButton.addEventListener('click', function () { + var trackId = 'none'; + if (player.selectedTrack === null) { + trackId = player.getSubtitles()[0].trackId; + } + player.setTrack(trackId); + }); + } else { + var labels = player.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selector-label'), + captions = player.captionsButton.querySelectorAll('input[type=radio]'); + + for (var _i = 0; _i < inEvents.length; _i++) { + player.captionsButton.addEventListener(inEvents[_i], function () { + (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen'); + }); + } - for (var _i2 = 0; _i2 < total; _i2++) { - var _kind = player.tracks[_i2].kind; - if (player.tracks[_i2].src.trim() && (_kind === 'subtitles' || _kind === 'captions')) { - player.addTrackButton(player.tracks[_i2].trackId, player.tracks[_i2].srclang, player.tracks[_i2].label); - } - } + for (var _i2 = 0; _i2 < outEvents.length; _i2++) { + player.captionsButton.addEventListener(outEvents[_i2], function () { + var _this = this; - player.loadNextTrack(); + setTimeout(function () { + (0, _dom.addClass)(_this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen'); + }, 0); + }); + } - var inEvents = ['mouseenter', 'focusin'], - outEvents = ['mouseleave', 'focusout']; + for (var _i3 = 0; _i3 < captions.length; _i3++) { + captions[_i3].addEventListener('click', function (e) { + if (!e.target.disabled) { + player.setTrack(this.value); + } + }); + } - if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount === 1) { - player.captionsButton.addEventListener('click', function (e) { - var trackId = 'none'; - if (player.selectedTrack === null) { - trackId = player.tracks[0].trackId; - } - var keyboard = e.keyCode || e.which; - player.setTrack(trackId, typeof keyboard !== 'undefined'); - }); - } else { - var labels = player.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selector-label'), - captions = player.captionsButton.querySelectorAll('input[type=radio]'); + for (var _i4 = 0; _i4 < labels.length; _i4++) { + labels[_i4].addEventListener('click', function (e) { + var radio = (0, _dom.siblings)(this, function (el) { + return el.tagName === 'INPUT'; + })[0], + event = (0, _general.createEvent)('click', radio); + radio.dispatchEvent(event); + e.preventDefault(); + }); + } - for (var _i3 = 0, _total = inEvents.length; _i3 < _total; _i3++) { - player.captionsButton.addEventListener(inEvents[_i3], function () { - (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen'); - }); - } + player.captionsButton.addEventListener('keydown', function (e) { + e.stopPropagation(); + }); + } - for (var _i4 = 0, _total2 = outEvents.length; _i4 < _total2; _i4++) { - player.captionsButton.addEventListener(outEvents[_i4], function () { - (0, _dom.addClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen'); - }); - } + for (var _i5 = 0; _i5 < inEvents.length; _i5++) { + player.chaptersButton.addEventListener(inEvents[_i5], function () { + if (this.querySelector('.' + t.options.classPrefix + 'chapters-selector-list').children.length) { + (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen'); + } + }); + } - for (var _i5 = 0, _total3 = captions.length; _i5 < _total3; _i5++) { - captions[_i5].addEventListener('click', function (e) { - var keyboard = e.keyCode || e.which; - player.setTrack(this.value, typeof keyboard !== 'undefined'); - }); - } + for (var _i6 = 0; _i6 < outEvents.length; _i6++) { + player.chaptersButton.addEventListener(outEvents[_i6], function () { + var _this2 = this; - for (var _i6 = 0, _total4 = labels.length; _i6 < _total4; _i6++) { - labels[_i6].addEventListener('click', function (e) { - var radio = (0, _dom.siblings)(this, function (el) { - return el.tagName === 'INPUT'; - })[0], - event = (0, _general.createEvent)('click', radio); - radio.dispatchEvent(event); - e.preventDefault(); - }); - } + setTimeout(function () { + (0, _dom.addClass)(_this2.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen'); + }, 0); + }); + } - player.captionsButton.addEventListener('keydown', function (e) { - e.stopPropagation(); - }); - } + player.chaptersButton.addEventListener('keydown', function (e) { + e.stopPropagation(); + }); - for (var _i7 = 0, _total5 = inEvents.length; _i7 < _total5; _i7++) { - player.chaptersButton.addEventListener(inEvents[_i7], function () { - if (this.querySelector('.' + t.options.classPrefix + 'chapters-selector-list').children.length) { - (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen'); - } - }); - } + t.checkAllCaptionsLoadedOrError(); + t.checkAllChaptersLoadedOrError(); + }, + clearTrackHtml: function clearTrackHtml(player) { + if (player) { + if (player.captionsButton) { + player.captionsButton.remove(); + } + if (player.chaptersButton) { + player.chaptersButton.remove(); + } + } + }, + initTracks: function initTracks(player) { + var t = this, + trackFiles = t.trackFiles === null ? t.node.querySelectorAll('track') : t.trackFiles; + + t.tracks = []; + + if (trackFiles) { + player.trackFiles = trackFiles; + for (var i = 0; i < trackFiles.length; i++) { + var track = trackFiles[i], + srclang = track.getAttribute('srclang').toLowerCase() || '', + trackId = track.getAttribute('id') || t.id + '_track_' + i + '_' + track.getAttribute('kind') + '_' + srclang; + track.setAttribute('id', trackId); + + var trackData = { + trackId: trackId, + srclang: srclang, + src: track.getAttribute('src'), + kind: track.getAttribute('kind'), + label: track.getAttribute('label') || '', + entries: [], + isDefault: track.hasAttribute('default'), + isError: false, + isLoaded: false + }; + t.tracks.push(trackData); + + if (track.getAttribute('kind') === 'captions' || track.getAttribute('kind') === 'subtitles') { + switch (track.readyState) { + case 2: + t.handleCaptionsLoaded(track); + break; + case 3: + t.handleCaptionsError(track); + break; + default: + track.addEventListener('load', function (event) { + t.handleCaptionsLoaded(event.target); + }); + track.addEventListener('error', function (event) { + t.handleCaptionsError(event.target); + }); + break; + } + } else if (track.getAttribute('kind') === 'chapters') { + switch (track.readyState) { + case 2: + t.handleChaptersLoaded(track); + break; + case 3: + t.handleChaptersError(track); + break; + default: + track.addEventListener('load', function (event) { + t.handleChaptersLoaded(event.target); + }); + track.addEventListener('error', function (event) { + t.handleChaptersError(event.target); + }); + break; + } + } + } + } + }, + handleCaptionsLoaded: function handleCaptionsLoaded(target) { + var textTracks = this.node.textTracks, + playerTrack = this.getTrackById(target.getAttribute('id')); + + if (Number.isInteger(this.options.defaultTrackLine)) { + for (var i = 0; i < textTracks.length; i++) { + if (target.getAttribute('srclang') === textTracks[i].language && target.getAttribute('kind') === textTracks[i].kind) { + var cues = textTracks[i].cues; + for (var c = 0; c < cues.length; c++) { + if (cues[c].line === 'auto' || cues[c].line === undefined || cues[c].line === null) { + cues[c].line = this.options.defaultTrackLine; + } + } + break; + } + } + } - for (var _i8 = 0, _total6 = outEvents.length; _i8 < _total6; _i8++) { - player.chaptersButton.addEventListener(outEvents[_i8], function () { - (0, _dom.addClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen'); - }); - } + playerTrack.isLoaded = true; + this.enableTrackButton(playerTrack); + this.checkAllCaptionsLoadedOrError(); + }, + handleCaptionsError: function handleCaptionsError(target) { + var playerTrack = this.getTrackById(target.getAttribute('id')); + + playerTrack.isError = true; + this.removeTrackButton(playerTrack); + this.checkAllCaptionsLoadedOrError(); + }, + handleChaptersLoaded: function handleChaptersLoaded(target) { + var playerTrack = this.getTrackById(target.getAttribute('id')); + + this.hasChapters = true; + playerTrack.isLoaded = true; + this.checkAllChaptersLoadedOrError(); + }, + handleChaptersError: function handleChaptersError(target) { + var playerTrack = this.getTrackById(target.getAttribute('id')); + playerTrack.isError = true; + this.checkAllChaptersLoadedOrError(); + }, + checkAllCaptionsLoadedOrError: function checkAllCaptionsLoadedOrError() { + var subtitles = this.getSubtitles(); + if (subtitles.length === subtitles.filter(function (_ref) { + var isLoaded = _ref.isLoaded, + isError = _ref.isError; + return isLoaded || isError; + }).length) { + this.removeCaptionsIfEmpty(); + this.checkForAutoPlay(); + } + }, + checkAllChaptersLoadedOrError: function checkAllChaptersLoadedOrError() { + var _this3 = this; + + var chapters = this.getChapters(), + readyChapters = chapters.filter(function (_ref2) { + var isLoaded = _ref2.isLoaded; + return isLoaded; + }); + if (chapters.length === chapters.filter(function (_ref3) { + var isLoaded = _ref3.isLoaded, + isError = _ref3.isError; + return isLoaded || isError; + }).length) { + if (readyChapters.length === 0) { + this.chaptersButton.remove(); + } else { + var langChapter = readyChapters.find(function (_ref4) { + var srclang = _ref4.srclang; + return srclang === _this3.options.chaptersLanguage; + }); + + langChapter = langChapter || readyChapters.find(function (_ref5) { + var srclang = _ref5.srclang; + return srclang === _i18n2.default.lang; + }); + + if (readyChapters.length === 1 || !langChapter) { + this.drawChapters(readyChapters[0].trackId); + } else { + this.drawChapters(langChapter.trackId); + } + } + } + }, + setTrack: function setTrack(trackId) { + var t = this, + radios = t.captionsButton.querySelectorAll('input[type="radio"]'), + captions = t.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selected'), + track = t.captionsButton.querySelector('input[value="' + trackId + '"]'); + + for (var i = 0; i < radios.length; i++) { + radios[i].checked = false; + } - player.chaptersButton.addEventListener('keydown', function (e) { - e.stopPropagation(); - }); + for (var _i7 = 0; _i7 < captions.length; _i7++) { + (0, _dom.removeClass)(captions[_i7], t.options.classPrefix + 'captions-selected'); + } - if (!player.options.alwaysShowControls) { - player.getElement(player.container).addEventListener('controlsshown', function () { - (0, _dom.addClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover'); - }); + track.checked = true; + var labels = (0, _dom.siblings)(track, function (el) { + return (0, _dom.hasClass)(el, t.options.classPrefix + 'captions-selector-label'); + }); + for (var _i8 = 0; _i8 < labels.length; _i8++) { + (0, _dom.addClass)(labels[_i8], t.options.classPrefix + 'captions-selected'); + } - player.getElement(player.container).addEventListener('controlshidden', function () { - if (!media.paused) { - (0, _dom.removeClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover'); - } - }); - } else { - (0, _dom.addClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover'); - } + if (trackId === 'none') { + t.selectedTrack = null; + (0, _dom.removeClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled'); + t.deactivateVideoTracks(); + } else { + var _track = t.getTrackById(trackId); + if (_track) { + if (t.selectedTrack === null) { + (0, _dom.addClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled'); + } + t.selectedTrack = _track; + t.activateVideoTrack(t.selectedTrack.srclang); + } + } - media.addEventListener('timeupdate', function () { - player.displayCaptions(); - }); + var event = (0, _general.createEvent)('captionschange', t.media); + event.detail.caption = t.selectedTrack; + t.media.dispatchEvent(event); + }, + hideAllTracks: function hideAllTracks() { + if (this.node.textTracks) { + for (var i = 0; i < this.node.textTracks.length; i++) { + this.node.textTracks[i].mode = 'hidden'; + } + } + }, + deactivateVideoTracks: function deactivateVideoTracks() { + if (this.node.textTracks) { + for (var i = 0; i < this.node.textTracks.length; i++) { + var track = this.node.textTracks[i]; + if (track.kind === 'subtitles' || track.kind === 'captions') { + track.mode = 'hidden'; + } + } + } + if (this.options.toggleCaptionsButtonWhenOnlyOne && this.getSubtitles().length === 1) { + this.captionsButton.classList.remove(this.options.classPrefix + 'captions-button-toggle-on'); + } + }, + activateVideoTrack: function activateVideoTrack(srclang) { + for (var i = 0; i < this.node.textTracks.length; i++) { + var track = this.node.textTracks[i]; + + if (track.kind === 'subtitles' || track.kind === 'captions') { + if (track.language === srclang) { + track.mode = 'showing'; + if (this.options.toggleCaptionsButtonWhenOnlyOne && this.getSubtitles().length === 1) { + this.captionsButton.classList.add(this.options.classPrefix + 'captions-button-toggle-on'); + } + } else { + track.mode = 'hidden'; + } + } + } + }, + checkForAutoPlay: function checkForAutoPlay() { + var _this4 = this; + + var readySubtitles = this.getSubtitles().filter(function (_ref6) { + var isError = _ref6.isError; + return !isError; + }), + autoplayTrack = readySubtitles.find(function (_ref7) { + var srclang = _ref7.srclang; + return _this4.options.autoplayCaptionLanguage === srclang; + }) || readySubtitles.find(function (_ref8) { + var isDefault = _ref8.isDefault; + return isDefault; + }); - if (player.options.slidesSelector !== '') { - player.slidesContainer = _document2.default.querySelectorAll(player.options.slidesSelector); + if (autoplayTrack) { + if (this.options.toggleCaptionsButtonWhenOnlyOne && readySubtitles.length === 1 && this.captionsButton) { + this.captionsButton.dispatchEvent((0, _general.createEvent)('click', this.captionsButton)); + } else { + var target = _document2.default.getElementById(autoplayTrack.trackId + '-btn'); + if (target) { + target.checked = true; + target.dispatchEvent((0, _general.createEvent)('click', target)); + } + } + } + }, + enableTrackButton: function enableTrackButton(track) { + var t = this, + lang = track.srclang, + target = _document2.default.getElementById(track.trackId + '-btn'); + if (!target) { + return; + } - media.addEventListener('timeupdate', function () { - player.displaySlides(); - }); - } - }, - cleartracks: function cleartracks(player) { - if (player) { - if (player.captions) { - player.captions.remove(); - } - if (player.chapters) { - player.chapters.remove(); - } - if (player.captionsText) { - player.captionsText.remove(); - } - if (player.captionsButton) { - player.captionsButton.remove(); - } - if (player.chaptersButton) { - player.chaptersButton.remove(); - } - } - }, - rebuildtracks: function rebuildtracks() { - var t = this; - t.findTracks(); - t.buildtracks(t, t.getElement(t.controls), t.getElement(t.layers), t.media); - }, - findTracks: function findTracks() { - var t = this, - tracktags = t.trackFiles === null ? t.node.querySelectorAll('track') : t.trackFiles, - total = tracktags.length; - - t.tracks = []; - for (var i = 0; i < total; i++) { - var track = tracktags[i], - srclang = track.getAttribute('srclang').toLowerCase() || '', - trackId = t.id + '_track_' + i + '_' + track.getAttribute('kind') + '_' + srclang; - t.tracks.push({ - trackId: trackId, - srclang: srclang, - src: track.getAttribute('src'), - kind: track.getAttribute('kind'), - label: track.getAttribute('label') || '', - entries: [], - isLoaded: false - }); - } - }, - setTrack: function setTrack(trackId, setByKeyboard) { + var label = track.label; - var t = this, - radios = t.captionsButton.querySelectorAll('input[type="radio"]'), - captions = t.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selected'), - track = t.captionsButton.querySelector('input[value="' + trackId + '"]'); + if (label === '') { + label = _i18n2.default.t(_mejs2.default.language.codes[lang]) || lang; + } + target.disabled = false; + var targetSiblings = (0, _dom.siblings)(target, function (el) { + return (0, _dom.hasClass)(el, t.options.classPrefix + 'captions-selector-label'); + }); + for (var i = 0; i < targetSiblings.length; i++) { + targetSiblings[i].innerHTML = label; + } + }, + removeTrackButton: function removeTrackButton(track) { + var element = _document2.default.getElementById(track.trackId + '-btn'); + if (element) { + var button = element.closest('li'); + if (button) { + button.remove(); + } + } + }, + addTrackButton: function addTrackButton(track) { + var t = this, + label = track.label || _i18n2.default.t(_mejs2.default.language.codes[track.srclang]) || track.srclang; + + t.captionsButton.querySelector('ul').innerHTML += '
    • ' + ('') + ('') + '
    • '; + }, + removeCaptionsIfEmpty: function removeCaptionsIfEmpty() { + if (this.captionsButton && this.options.hideCaptionsButtonWhenEmpty) { + var subtitleCount = this.getSubtitles().filter(function (_ref9) { + var isError = _ref9.isError; + return !isError; + }).length; + this.captionsButton.style.display = subtitleCount > 0 ? '' : 'none'; + this.setControlsSize(); + } + }, + drawChapters: function drawChapters(chapterTrackId) { + var t = this, + chapter = this.node.textTracks.getTrackById(chapterTrackId), + numberOfChapters = chapter.cues.length; - for (var i = 0, total = radios.length; i < total; i++) { - radios[i].checked = false; - } + if (!numberOfChapters) { + return; + } - for (var _i9 = 0, _total7 = captions.length; _i9 < _total7; _i9++) { - (0, _dom.removeClass)(captions[_i9], t.options.classPrefix + 'captions-selected'); - } + t.chaptersButton.querySelector('ul').innerHTML = ''; - track.checked = true; - var labels = (0, _dom.siblings)(track, function (el) { - return (0, _dom.hasClass)(el, t.options.classPrefix + 'captions-selector-label'); - }); - for (var _i10 = 0, _total8 = labels.length; _i10 < _total8; _i10++) { - (0, _dom.addClass)(labels[_i10], t.options.classPrefix + 'captions-selected'); - } + for (var i = 0; i < numberOfChapters; i++) { + t.chaptersButton.querySelector('ul').innerHTML += '
    • ' + ('') + ('') + '
    • '; + } - if (trackId === 'none') { - t.selectedTrack = null; - (0, _dom.removeClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled'); - } else { - for (var _i11 = 0, _total9 = t.tracks.length; _i11 < _total9; _i11++) { - var _track = t.tracks[_i11]; - if (_track.trackId === trackId) { - if (t.selectedTrack === null) { - (0, _dom.addClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled'); - } - t.selectedTrack = _track; - t.captions.setAttribute('lang', t.selectedTrack.srclang); - t.displayCaptions(); - break; - } - } - } + var radios = t.chaptersButton.querySelectorAll('input[type="radio"]'), + labels = t.chaptersButton.querySelectorAll('.' + t.options.classPrefix + 'chapters-selector-label'); + + for (var _i9 = 0; _i9 < radios.length; _i9++) { + radios[_i9].disabled = false; + radios[_i9].checked = false; + radios[_i9].addEventListener('click', function (e) { + var self = this, + listItems = t.chaptersButton.querySelectorAll('li'), + label = (0, _dom.siblings)(self, function (el) { + return (0, _dom.hasClass)(el, t.options.classPrefix + 'chapters-selector-label'); + })[0]; + + self.checked = true; + self.parentNode.setAttribute('aria-checked', true); + (0, _dom.addClass)(label, t.options.classPrefix + 'chapters-selected'); + (0, _dom.removeClass)(t.chaptersButton.querySelector('.' + t.options.classPrefix + 'chapters-selected'), t.options.classPrefix + 'chapters-selected'); + + for (var _i10 = 0; _i10 < listItems.length; _i10++) { + listItems[_i10].setAttribute('aria-checked', false); + } - var event = (0, _general.createEvent)('captionschange', t.media); - event.detail.caption = t.selectedTrack; - t.media.dispatchEvent(event); + var keyboard = e.keyCode || e.which; + if (typeof keyboard === 'undefined') { + setTimeout(function () { + t.getElement(t.container).focus(); + }, 500); + } - if (!setByKeyboard) { - setTimeout(function () { - t.getElement(t.container).focus(); - }, 500); - } - }, - loadNextTrack: function loadNextTrack() { - var t = this; + t.media.setCurrentTime(parseFloat(self.value)); + if (t.media.paused) { + t.media.play(); + } + }); + } - t.trackToLoad++; - if (t.trackToLoad < t.tracks.length) { - t.isLoadingTrack = true; - t.loadTrack(t.trackToLoad); - } else { - t.isLoadingTrack = false; - t.checkForTracks(); - } - }, - loadTrack: function loadTrack(index) { - var t = this, - track = t.tracks[index]; + for (var _i11 = 0; _i11 < labels.length; _i11++) { + labels[_i11].addEventListener('click', function (e) { + var radio = (0, _dom.siblings)(this, function (el) { + return el.tagName === 'INPUT'; + })[0], + event = (0, _general.createEvent)('click', radio); + radio.dispatchEvent(event); + e.preventDefault(); + }); + } + }, + getTrackById: function getTrackById(trackId) { + return this.tracks.find(function (track) { + return track.trackId === trackId; + }); + }, + getChapters: function getChapters() { + return this.tracks.filter(function (_ref10) { + var kind = _ref10.kind; + return kind === 'chapters'; + }); + }, + getSubtitles: function getSubtitles() { + return this.tracks.filter(function (_ref11) { + var kind = _ref11.kind; + return kind === 'subtitles' || kind === 'captions'; + }); + }, + searchTrackPosition: function searchTrackPosition(tracks, currentTime) { + var lo = 0, + hi = tracks.length - 1, + mid = void 0, + start = void 0, + stop = void 0; + + while (lo <= hi) { + mid = lo + hi >> 1; + start = tracks[mid].start; + stop = tracks[mid].stop; + + if (currentTime >= start && currentTime < stop) { + return mid; + } else if (start < currentTime) { + lo = mid + 1; + } else if (start > currentTime) { + hi = mid - 1; + } + } - if (track !== undefined && (track.src !== undefined || track.src !== "")) { - (0, _dom.ajax)(track.src, 'text', function (d) { - track.entries = typeof d === 'string' && /' + ('') + ('') + ''; - }, - checkForTracks: function checkForTracks() { - var t = this; - - var hasSubtitles = false; - - if (t.options.hideCaptionsButtonWhenEmpty) { - for (var i = 0, total = t.tracks.length; i < total; i++) { - var kind = t.tracks[i].kind; - if ((kind === 'subtitles' || kind === 'captions') && t.tracks[i].isLoaded) { - hasSubtitles = true; - break; - } - } - - t.captionsButton.style.display = hasSubtitles ? '' : 'none'; - t.setControlsSize(); - } - }, - displayCaptions: function displayCaptions() { - if (this.tracks === undefined) { - return; - } - - var t = this, - track = t.selectedTrack, - sanitize = function sanitize(html) { - var div = _document2.default.createElement('div'); - div.innerHTML = html; - - var scripts = div.getElementsByTagName('script'); - var i = scripts.length; - while (i--) { - scripts[i].remove(); - } - - var allElements = div.getElementsByTagName('*'); - for (var _i12 = 0, n = allElements.length; _i12 < n; _i12++) { - var attributesObj = allElements[_i12].attributes, - attributes = Array.prototype.slice.call(attributesObj); - - for (var j = 0, total = attributes.length; j < total; j++) { - if (attributes[j].name.startsWith('on') || attributes[j].value.startsWith('javascript')) { - allElements[_i12].remove(); - } else if (attributes[j].name === 'style') { - allElements[_i12].removeAttribute(attributes[j].name); - } - } - } - return div.innerHTML; - }; - - if (track !== null && track.isLoaded) { - var i = t.searchTrackPosition(track.entries, t.media.currentTime); - if (i > -1) { - var text = track.entries[i].text; - if (typeof t.options.captionTextPreprocessor === 'function') text = t.options.captionTextPreprocessor(text); - t.captionsText.innerHTML = sanitize(text); - t.captionsText.className = t.options.classPrefix + 'captions-text ' + (track.entries[i].identifier || ''); - t.captions.style.display = ''; - t.captions.style.height = '0px'; - return; - } - t.captions.style.display = 'none'; - } else { - t.captions.style.display = 'none'; - } - }, - setupSlides: function setupSlides(track) { - var t = this; - t.slides = track; - t.slides.entries.imgs = [t.slides.entries.length]; - t.showSlide(0); - }, - showSlide: function showSlide(index) { - var _this = this; - - var t = this; - - if (t.tracks === undefined || t.slidesContainer === undefined) { - return; - } - - var url = t.slides.entries[index].text; - - var img = t.slides.entries[index].imgs; - - if (img === undefined || img.fadeIn === undefined) { - var image = _document2.default.createElement('img'); - image.src = url; - image.addEventListener('load', function () { - var self = _this, - visible = (0, _dom.siblings)(self, function (el) { - return visible(el); - }); - self.style.display = 'none'; - t.slidesContainer.innerHTML += self.innerHTML; - (0, _dom.fadeIn)(t.slidesContainer.querySelector(image)); - for (var i = 0, total = visible.length; i < total; i++) { - (0, _dom.fadeOut)(visible[i], 400); - } - }); - t.slides.entries[index].imgs = img = image; - } else if (!(0, _dom.visible)(img)) { - var _visible = (0, _dom.siblings)(self, function (el) { - return _visible(el); - }); - (0, _dom.fadeIn)(t.slidesContainer.querySelector(img)); - for (var i = 0, total = _visible.length; i < total; i++) { - (0, _dom.fadeOut)(_visible[i]); - } - } - }, - displaySlides: function displaySlides() { - var t = this; - - if (this.slides === undefined) { - return; - } - - var slides = t.slides, - i = t.searchTrackPosition(slides.entries, t.media.currentTime); - - if (i > -1) { - t.showSlide(i); - } - }, - drawChapters: function drawChapters(chapters) { - var t = this, - total = chapters.entries.length; - - if (!total) { - return; - } - - t.chaptersButton.querySelector('ul').innerHTML = ''; - - for (var i = 0; i < total; i++) { - t.chaptersButton.querySelector('ul').innerHTML += '
    • ' + ('') + ('') + '
    • '; - } - - var radios = t.chaptersButton.querySelectorAll('input[type="radio"]'), - labels = t.chaptersButton.querySelectorAll('.' + t.options.classPrefix + 'chapters-selector-label'); - - for (var _i13 = 0, _total10 = radios.length; _i13 < _total10; _i13++) { - radios[_i13].disabled = false; - radios[_i13].checked = false; - radios[_i13].addEventListener('click', function (e) { - var self = this, - listItems = t.chaptersButton.querySelectorAll('li'), - label = (0, _dom.siblings)(self, function (el) { - return (0, _dom.hasClass)(el, t.options.classPrefix + 'chapters-selector-label'); - })[0]; - - self.checked = true; - self.parentNode.setAttribute('aria-checked', true); - (0, _dom.addClass)(label, t.options.classPrefix + 'chapters-selected'); - (0, _dom.removeClass)(t.chaptersButton.querySelector('.' + t.options.classPrefix + 'chapters-selected'), t.options.classPrefix + 'chapters-selected'); - - for (var _i14 = 0, _total11 = listItems.length; _i14 < _total11; _i14++) { - listItems[_i14].setAttribute('aria-checked', false); - } - - var keyboard = e.keyCode || e.which; - if (typeof keyboard === 'undefined') { - setTimeout(function () { - t.getElement(t.container).focus(); - }, 500); - } - - t.media.setCurrentTime(parseFloat(self.value)); - if (t.media.paused) { - t.media.play(); - } - }); - } - - for (var _i15 = 0, _total12 = labels.length; _i15 < _total12; _i15++) { - labels[_i15].addEventListener('click', function (e) { - var radio = (0, _dom.siblings)(this, function (el) { - return el.tagName === 'INPUT'; - })[0], - event = (0, _general.createEvent)('click', radio); - radio.dispatchEvent(event); - e.preventDefault(); - }); - } - }, - searchTrackPosition: function searchTrackPosition(tracks, currentTime) { - var lo = 0, - hi = tracks.length - 1, - mid = void 0, - start = void 0, - stop = void 0; - - while (lo <= hi) { - mid = lo + hi >> 1; - start = tracks[mid].start; - stop = tracks[mid].stop; - - if (currentTime >= start && currentTime < stop) { - return mid; - } else if (start < currentTime) { - lo = mid + 1; - } else if (start > currentTime) { - hi = mid - 1; - } - } - - return -1; - } -}); - -_mejs2.default.language = { - codes: { - af: 'mejs.afrikaans', - sq: 'mejs.albanian', - ar: 'mejs.arabic', - be: 'mejs.belarusian', - bg: 'mejs.bulgarian', - ca: 'mejs.catalan', - zh: 'mejs.chinese', - 'zh-cn': 'mejs.chinese-simplified', - 'zh-tw': 'mejs.chines-traditional', - hr: 'mejs.croatian', - cs: 'mejs.czech', - da: 'mejs.danish', - nl: 'mejs.dutch', - en: 'mejs.english', - et: 'mejs.estonian', - fl: 'mejs.filipino', - fi: 'mejs.finnish', - fr: 'mejs.french', - gl: 'mejs.galician', - de: 'mejs.german', - el: 'mejs.greek', - ht: 'mejs.haitian-creole', - iw: 'mejs.hebrew', - hi: 'mejs.hindi', - hu: 'mejs.hungarian', - is: 'mejs.icelandic', - id: 'mejs.indonesian', - ga: 'mejs.irish', - it: 'mejs.italian', - ja: 'mejs.japanese', - ko: 'mejs.korean', - lv: 'mejs.latvian', - lt: 'mejs.lithuanian', - mk: 'mejs.macedonian', - ms: 'mejs.malay', - mt: 'mejs.maltese', - no: 'mejs.norwegian', - fa: 'mejs.persian', - pl: 'mejs.polish', - pt: 'mejs.portuguese', - ro: 'mejs.romanian', - ru: 'mejs.russian', - sr: 'mejs.serbian', - sk: 'mejs.slovak', - sl: 'mejs.slovenian', - es: 'mejs.spanish', - sw: 'mejs.swahili', - sv: 'mejs.swedish', - tl: 'mejs.tagalog', - th: 'mejs.thai', - tr: 'mejs.turkish', - uk: 'mejs.ukrainian', - vi: 'mejs.vietnamese', - cy: 'mejs.welsh', - yi: 'mejs.yiddish' - } -}; - -_mejs2.default.TrackFormatParser = { - webvtt: { - pattern: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/, - - parse: function parse(trackText) { - var lines = trackText.split(/\r?\n/), - entries = []; - - var timecode = void 0, - text = void 0, - identifier = void 0; - - for (var i = 0, total = lines.length; i < total; i++) { - timecode = this.pattern.exec(lines[i]); - - if (timecode && i < lines.length) { - if (i - 1 >= 0 && lines[i - 1] !== '') { - identifier = lines[i - 1]; - } - i++; - - text = lines[i]; - i++; - while (lines[i] !== '' && i < lines.length) { - text = text + '\n' + lines[i]; - i++; - } - text = text === null ? '' : text.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "$1"); - entries.push({ - identifier: identifier, - start: (0, _time.convertSMPTEtoSeconds)(timecode[1]) === 0 ? 0.200 : (0, _time.convertSMPTEtoSeconds)(timecode[1]), - stop: (0, _time.convertSMPTEtoSeconds)(timecode[3]), - text: text, - settings: timecode[5] - }); - } - identifier = ''; - } - return entries; - } - }, - - dfxp: { - parse: function parse(trackText) { - var trackElem = _document2.default.adoptNode(new DOMParser().parseFromString(trackText, 'application/xml').documentElement), - container = trackElem.querySelector('div'), - lines = container.querySelectorAll('p'), - styleNode = _document2.default.getElementById(container.getAttribute('style')), - entries = []; - - var styles = void 0; - - if (styleNode) { - styleNode.removeAttribute('id'); - var attributes = styleNode.attributes; - if (attributes.length) { - styles = {}; - for (var i = 0, total = attributes.length; i < total; i++) { - styles[attributes[i].name.split(":")[1]] = attributes[i].value; - } - } - } - - for (var _i16 = 0, _total13 = lines.length; _i16 < _total13; _i16++) { - var style = void 0, - _temp = { - start: null, - stop: null, - style: null, - text: null - }; - - if (lines[_i16].getAttribute('begin')) { - _temp.start = (0, _time.convertSMPTEtoSeconds)(lines[_i16].getAttribute('begin')); - } - if (!_temp.start && lines[_i16 - 1].getAttribute('end')) { - _temp.start = (0, _time.convertSMPTEtoSeconds)(lines[_i16 - 1].getAttribute('end')); - } - if (lines[_i16].getAttribute('end')) { - _temp.stop = (0, _time.convertSMPTEtoSeconds)(lines[_i16].getAttribute('end')); - } - if (!_temp.stop && lines[_i16 + 1].getAttribute('begin')) { - _temp.stop = (0, _time.convertSMPTEtoSeconds)(lines[_i16 + 1].getAttribute('begin')); - } - - if (styles) { - style = ''; - for (var _style in styles) { - style += _style + ': ' + styles[_style] + ';'; - } - } - if (style) { - _temp.style = style; - } - if (_temp.start === 0) { - _temp.start = 0.200; - } - _temp.text = lines[_i16].innerHTML.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_| !:, .; ]*[-A-Z0-9+&@#\/%=~_|])/ig, "$1"); - entries.push(_temp); - } - return entries; - } - } -}; - -},{"16":16,"2":2,"26":26,"27":27,"30":30,"5":5,"7":7}],14:[function(_dereq_,module,exports){ -'use strict'; - -var _document = _dereq_(2); - -var _document2 = _interopRequireDefault(_document); - -var _player = _dereq_(16); - -var _player2 = _interopRequireDefault(_player); - -var _i18n = _dereq_(5); +var _i18n = _dereq_(6); var _i18n2 = _interopRequireDefault(_i18n); -var _constants = _dereq_(25); +var _constants = _dereq_(24); -var _general = _dereq_(27); +var _general = _dereq_(26); -var _dom = _dereq_(26); +var _dom = _dereq_(25); + +var _generate = _dereq_(27); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -3057,7 +3016,7 @@ Object.assign(_player2.default.prototype, { mute = _document2.default.createElement('div'); mute.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'volume-button ' + t.options.classPrefix + 'mute'; - mute.innerHTML = mode === 'horizontal' ? '' : '' + ('' + ('' + volumeControlText + '') + ('
      ') + ('
      ') + ('
      ') + '
      ' + '
      '; + mute.innerHTML = mode === 'horizontal' ? (0, _generate.generateControlButton)(t.id, muteText, muteText, '' + t.media.options.iconSprite, ['icon-mute', 'icon-unmute'], '' + t.options.classPrefix, '', t.options.classPrefix + 'horizontal-volume-slider') : (0, _generate.generateControlButton)(t.id, muteText, muteText, '' + t.media.options.iconSprite, ['icon-mute', 'icon-unmute'], '' + t.options.classPrefix, '', t.options.classPrefix + 'volume-slider') + ('' + ('' + volumeControlText + '') + ('
      ') + ('
      ') + ('
      ') + '
      ' + '
      '; t.addControlElement(mute, 'volume'); @@ -3122,13 +3081,12 @@ Object.assign(_player2.default.prototype, { if (mode === 'horizontal') { var anchor = _document2.default.createElement('a'); anchor.className = t.options.classPrefix + 'horizontal-volume-slider'; - anchor.href = 'javascript:void(0);'; anchor.setAttribute('aria-label', _i18n2.default.t('mejs.volume-slider')); anchor.setAttribute('aria-valuemin', 0); anchor.setAttribute('aria-valuemax', 100); anchor.setAttribute('aria-valuenow', 100); anchor.setAttribute('role', 'slider'); - anchor.innerHTML += '' + volumeControlText + '' + ('
      ') + ('
      ') + ('
      ') + '
      '; + anchor.innerHTML += '' + volumeControlText + '' + ('
      ') + ('
      ') + ('
      ') + '
      '; mute.parentNode.insertBefore(anchor, mute.nextSibling); } @@ -3316,7 +3274,10 @@ Object.assign(_player2.default.prototype, { handleVolumeMove(e); t.globalBind('mousemove.vol', function (event) { var target = event.target; - if (mouseIsDown && (target === volumeSlider || target.closest(mode === 'vertical' ? '.' + t.options.classPrefix + 'volume-slider' : '.' + t.options.classPrefix + 'horizontal-volume-slider'))) { + + var targetHasClosest = typeof target.closest == 'function'; + var targetSliderElement = target.closest(mode === 'vertical' ? '.' + t.options.classPrefix + 'volume-slider' : '.' + t.options.classPrefix + 'horizontal-volume-slider'); + if (mouseIsDown && (target === volumeSlider || targetHasClosest && targetSliderElement)) { handleVolumeMove(event); } }); @@ -3382,7 +3343,7 @@ Object.assign(_player2.default.prototype, { } }); -},{"16":16,"2":2,"25":25,"26":26,"27":27,"5":5}],15:[function(_dereq_,module,exports){ +},{"17":17,"2":2,"24":24,"25":25,"26":26,"27":27,"6":6}],16:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -3393,8 +3354,6 @@ var EN = exports.EN = { 'mejs.download-file': 'Download File', - 'mejs.install-flash': 'You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/', - 'mejs.fullscreen': 'Fullscreen', 'mejs.play': 'Play', @@ -3404,6 +3363,9 @@ var EN = exports.EN = { 'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.', 'mejs.live-broadcast': 'Live Broadcast', + 'mejs.current': 'Current time', + 'mejs.duration': 'Total duration', + 'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.', 'mejs.unmute': 'Unmute', 'mejs.mute': 'Mute', @@ -3472,7 +3434,7 @@ var EN = exports.EN = { 'mejs.yiddish': 'Yiddish' }; -},{}],16:[function(_dereq_,module,exports){ +},{}],17:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -3492,34 +3454,36 @@ var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _mediaelement = _dereq_(6); +var _mediaelement = _dereq_(7); var _mediaelement2 = _interopRequireDefault(_mediaelement); -var _default = _dereq_(17); +var _default = _dereq_(18); var _default2 = _interopRequireDefault(_default); -var _i18n = _dereq_(5); +var _i18n = _dereq_(6); var _i18n2 = _interopRequireDefault(_i18n); -var _constants = _dereq_(25); +var _constants = _dereq_(24); -var _general = _dereq_(27); +var _general = _dereq_(26); var _time = _dereq_(30); var _media = _dereq_(28); -var _dom = _dereq_(26); +var _dom = _dereq_(25); var dom = _interopRequireWildcard(_dom); +var _generate = _dereq_(27); + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -3615,19 +3579,9 @@ var config = exports.config = { customError: null, - keyActions: [{ - keys: [32, 179], - action: function action(player) { + keyActions: [], - if (!_constants.IS_FIREFOX) { - if (player.paused || player.ended) { - player.play(); - } else { - player.pause(); - } - } - } - }] + hideScreenReaderTitle: false }; _mejs2.default.MepDefaults = config; @@ -3724,6 +3678,8 @@ var MediaElementPlayer = function () { t.mediaFiles = null; t.trackFiles = null; + t.media.addEventListener('rendererready', this.updateNode.bind(this)); + if (_constants.IS_IPAD && t.options.iPadUseNativeControls || _constants.IS_IPHONE && t.options.iPhoneUseNativeControls) { t.node.setAttribute('controls', true); @@ -3734,10 +3690,12 @@ var MediaElementPlayer = function () { t.node.removeAttribute('controls'); var videoPlayerTitle = t.isVideo ? _i18n2.default.t('mejs.video-player') : _i18n2.default.t('mejs.audio-player'); - var offscreen = _document2.default.createElement('span'); - offscreen.className = t.options.classPrefix + 'offscreen'; - offscreen.innerText = videoPlayerTitle; - t.media.parentNode.insertBefore(offscreen, t.media); + if (!t.options.hideScreenReaderTitle) { + var offscreen = _document2.default.createElement('span'); + offscreen.className = t.options.classPrefix + 'offscreen'; + offscreen.innerText = videoPlayerTitle; + t.media.parentNode.insertBefore(offscreen, t.media); + } t.container = _document2.default.createElement('div'); t.getElement(t.container).id = t.id; @@ -3746,6 +3704,7 @@ var MediaElementPlayer = function () { t.getElement(t.container).setAttribute('role', 'application'); t.getElement(t.container).setAttribute('aria-label', videoPlayerTitle); t.getElement(t.container).innerHTML = '
      ' + ('
      ') + ('
      ') + ('
      ') + '
      '; + t.getElement(t.container).addEventListener('focus', function (e) { if (!t.controlsAreVisible && !t.hasFocus && t.controlsEnabled) { t.showControls(true); @@ -3815,17 +3774,16 @@ var MediaElementPlayer = function () { } else { t.height = t.options['default' + capsTagName + 'Height']; } - t.initialAspectRatio = t.height >= t.width ? t.width / t.height : t.height / t.width; t.setPlayerSize(t.width, t.height); - - playerOptions.pluginWidth = t.width; - playerOptions.pluginHeight = t.height; } else if (!t.isVideo && !t.options.features.length && !t.options.useDefaultControls) { t.node.style.display = 'none'; } + playerOptions.pluginWidth = t.width; + playerOptions.pluginHeight = t.height; + _mejs2.default.MepDefaults = playerOptions; new _mediaelement2.default(t.media, playerOptions, t.mediaFiles); @@ -3835,6 +3793,28 @@ var MediaElementPlayer = function () { t.getElement(t.container).dispatchEvent(event); } } + }, { + key: 'updateNode', + value: function updateNode(event) { + var node = void 0, + iframeId = void 0; + var mediaElement = event.detail.target.hasOwnProperty('mediaElement') ? event.detail.target.mediaElement : event.detail.target; + var originalNode = mediaElement.originalNode; + + if (event.detail.isIframe) { + iframeId = mediaElement.renderer.id; + node = mediaElement.querySelector('#' + iframeId); + node.style.position = 'absolute'; + + if (originalNode.style.maxWidth) { + node.style.maxWidth = originalNode.style.maxWidth; + } + } else { + node = event.detail.target; + } + this.domNode = node; + this.node = node; + } }, { key: 'showControls', value: function showControls(doAnimation) { @@ -4060,7 +4040,6 @@ var MediaElementPlayer = function () { if (t.isVideo) { t.clickToPlayPauseCallback = function () { - if (t.options.clickToPlayPause) { var button = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-button'), pressed = button.getAttribute('aria-pressed'); @@ -4172,11 +4151,7 @@ var MediaElementPlayer = function () { } } - if (typeof t.media.renderer.stop === 'function') { - t.media.renderer.stop(); - } else { - t.pause(); - } + t.pause(); if (t.setProgressRail) { t.setProgressRail(); @@ -4226,6 +4201,20 @@ var MediaElementPlayer = function () { } }); + if (t.options.enableKeyboard) { + t.getElement(t.container).addEventListener('keydown', function (e) { + var keyCode = e.keyCode || e.which || 0; + + if (e.target === t.container && keyCode === 13) { + if (t.paused) { + t.play(); + } else { + t.pause(); + } + } + }); + } + t.getElement(t.container).addEventListener('click', function (e) { dom.addClass(e.currentTarget, t.options.classPrefix + 'container-keyboard-inactive'); }); @@ -4258,13 +4247,14 @@ var MediaElementPlayer = function () { }, 0); t.globalResizeCallback = function () { - if (!(t.isFullScreen || _constants.HAS_TRUE_NATIVE_FULLSCREEN && _document2.default.webkitIsFullScreen)) { + if (t.isFullScreen || _constants.HAS_TRUE_NATIVE_FULLSCREEN && _document2.default.webkitIsFullScreen) { + t.setPlayerSize(screen.width, screen.height); + } else { t.setPlayerSize(t.width, t.height); } t.setControlsSize(); }; - t.globalBind('resize', t.globalResizeCallback); } @@ -4351,6 +4341,11 @@ var MediaElementPlayer = function () { t.height = height; } + if (t.isFullScreen || _constants.HAS_TRUE_NATIVE_FULLSCREEN && _document2.default.webkitIsFullScreen) { + t.setDimensions(t.width, t.height); + return; + } + switch (t.options.stretching) { case 'fill': if (t.isVideo) { @@ -4387,7 +4382,6 @@ var MediaElementPlayer = function () { value: function setResponsiveMode() { var t = this, parent = function () { - var parentEl = void 0, el = t.getElement(t.container); @@ -4407,7 +4401,6 @@ var MediaElementPlayer = function () { } el = parentEl; } - return null; }(), parentStyles = parent ? getComputedStyle(parent, null) : getComputedStyle(_document2.default.body, null), @@ -4455,7 +4448,6 @@ var MediaElementPlayer = function () { if (isNaN(ratio) || ratio < 0.01 || ratio > 100) { ratio = 1; } - return ratio; }(), parentHeight = parseFloat(parentStyles.height); @@ -4464,7 +4456,9 @@ var MediaElementPlayer = function () { parentWidth = parseFloat(parentStyles.width); if (t.isVideo) { - if (t.height === '100%') { + if (t.height === '100%' && t.width === '100%') { + newHeight = parentHeight; + } else if (t.height === '100%') { newHeight = parseFloat(parentWidth * nativeHeight / nativeWidth, 10); } else { newHeight = t.height >= t.width ? parseFloat(parentWidth / aspectRatio, 10) : parseFloat(parentWidth * aspectRatio, 10); @@ -4473,6 +4467,10 @@ var MediaElementPlayer = function () { newHeight = nativeHeight; } + if (newHeight <= t.container.querySelector('.' + t.options.classPrefix + 'inner').offsetHeight) { + newHeight = t.container.querySelector('.' + t.options.classPrefix + 'inner').offsetHeight; + } + if (isNaN(newHeight)) { newHeight = parentHeight; } @@ -4493,6 +4491,11 @@ var MediaElementPlayer = function () { t.media.setSize(parentWidth, newHeight); } + if (newHeight <= t.container.querySelector('.' + t.options.classPrefix + 'inner').offsetHeight) { + t.node.style.width = 'auto'; + t.node.style.height = 'auto'; + } + var layerChildren = t.getElement(t.layers).children; for (var i = 0, total = layerChildren.length; i < total; i++) { layerChildren[i].style.width = '100%'; @@ -4565,7 +4568,6 @@ var MediaElementPlayer = function () { var parentWidth = parseFloat(parentStyles.width), parentHeight = parseFloat(parentStyles.height); - t.setDimensions('100%', '100%'); var poster = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'poster>img'); @@ -4574,8 +4576,8 @@ var MediaElementPlayer = function () { } var targetElement = t.getElement(t.container).querySelectorAll('object, embed, iframe, video'), - initHeight = t.height, - initWidth = t.width, + initHeight = parseFloat(t.height, 10), + initWidth = parseFloat(t.width, 10), scaleX1 = parentWidth, scaleY1 = initHeight * parentWidth / initWidth, scaleX2 = initWidth * parentHeight / initHeight, @@ -4608,6 +4610,12 @@ var MediaElementPlayer = function () { t.getElement(t.container).style.width = width; t.getElement(t.container).style.height = height; + var isNative = t.media.rendererName !== null && /(html5|native)/i.test(t.media.rendererName); + if ((t.isFullScreen || _constants.HAS_TRUE_NATIVE_FULLSCREEN && _document2.default.webkitIsFullScreen) && !isNative) { + t.node.style.width = width; + t.node.style.height = height; + } + var layers = t.getElement(t.layers).children; for (var i = 0, total = layers.length; i < total; i++) { layers[i].style.width = width; @@ -4623,34 +4631,12 @@ var MediaElementPlayer = function () { return; } - if (t.rail && dom.visible(t.rail)) { - var totalStyles = t.total ? getComputedStyle(t.total, null) : null, - totalMargin = totalStyles ? parseFloat(totalStyles.marginLeft) + parseFloat(totalStyles.marginRight) : 0, - railStyles = getComputedStyle(t.rail), - railMargin = parseFloat(railStyles.marginLeft) + parseFloat(railStyles.marginRight); - - var siblingsWidth = 0; - - var siblings = dom.siblings(t.rail, function (el) { - return el !== t.rail; - }), - total = siblings.length; - for (var i = 0; i < total; i++) { - siblingsWidth += siblings[i].offsetWidth; - } - - siblingsWidth += totalMargin + (totalMargin === 0 ? railMargin * 2 : railMargin) + 1; - - t.getElement(t.container).style.minWidth = siblingsWidth + 'px'; - - var event = (0, _general.createEvent)('controlsresize', t.getElement(t.container)); - t.getElement(t.container).dispatchEvent(event); - } else { + if (!(t.rail && dom.visible(t.rail))) { var children = t.getElement(t.controls).children; var minWidth = 0; - for (var _i = 0, _total = children.length; _i < _total; _i++) { - minWidth += children[_i].offsetWidth; + for (var i = 0, total = children.length; i < total; i++) { + minWidth += children[i].offsetWidth; } t.getElement(t.container).style.minWidth = minWidth + 'px'; @@ -4659,7 +4645,6 @@ var MediaElementPlayer = function () { }, { key: 'addControlElement', value: function addControlElement(element, key) { - var t = this; if (t.featurePosition[key] !== undefined) { @@ -4732,6 +4717,7 @@ var MediaElementPlayer = function () { if (!posterImg && url) { posterImg = _document2.default.createElement('img'); + posterImg.alt = ''; posterImg.className = t.options.classPrefix + 'poster-img'; posterImg.width = '100%'; posterImg.height = '100%'; @@ -4781,8 +4767,8 @@ var MediaElementPlayer = function () { } if (events.w) { var _eventList = events.w.split(' '); - for (var _i2 = 0, _total2 = _eventList.length; _i2 < _total2; _i2++) { - _eventList[_i2].split('.').reduce(function (part, e) { + for (var _i = 0, _total = _eventList.length; _i < _total; _i++) { + _eventList[_i].split('.').reduce(function (part, e) { _window2.default.addEventListener(e, callback, false); return e; }, ''); @@ -4807,8 +4793,8 @@ var MediaElementPlayer = function () { } if (events.w) { var _eventList2 = events.w.split(' '); - for (var _i3 = 0, _total3 = _eventList2.length; _i3 < _total3; _i3++) { - _eventList2[_i3].split('.').reduce(function (part, e) { + for (var _i2 = 0, _total2 = _eventList2.length; _i2 < _total2; _i2++) { + _eventList2[_i2].split('.').reduce(function (part, e) { _window2.default.removeEventListener(e, callback, false); return e; }, ''); @@ -4886,7 +4872,6 @@ var MediaElementPlayer = function () { }, { key: 'buildoverlays', value: function buildoverlays(player, controls, layers, media) { - if (!player.isVideo) { return; } @@ -4898,7 +4883,7 @@ var MediaElementPlayer = function () { loading.style.display = 'none'; loading.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer'; - loading.innerHTML = '
      ' + ('') + '
      '; + loading.innerHTML = '
      ' + ('
      \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
      ') + '
      '; layers.appendChild(loading); error.style.display = 'none'; @@ -4907,7 +4892,8 @@ var MediaElementPlayer = function () { layers.appendChild(error); bigPlay.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer ' + t.options.classPrefix + 'overlay-play'; - bigPlay.innerHTML = '
      '); + bigPlay.innerHTML = (0, _generate.generateControlButton)(t.id, _i18n2.default.t('mejs.play'), _i18n2.default.t('mejs.play'), '' + t.media.options.iconSprite, ['icon-overlay-play'], '' + t.options.classPrefix, t.options.classPrefix + 'overlay-button', '', false); + bigPlay.addEventListener('click', function () { if (t.options.clickToPlayPause) { @@ -4925,16 +4911,6 @@ var MediaElementPlayer = function () { } }); - bigPlay.addEventListener('keydown', function (e) { - var keyPressed = e.keyCode || e.which || 0; - - if (keyPressed === 13 || _constants.IS_FIREFOX && keyPressed === 32) { - var event = (0, _general.createEvent)('click', bigPlay); - bigPlay.dispatchEvent(event); - return false; - } - }); - layers.appendChild(bigPlay); if (t.media.rendererName !== null && (/(youtube|facebook)/i.test(t.media.rendererName) && !(t.media.originalNode.getAttribute('poster') || player.options.poster || typeof t.media.renderer.getPosterUrl === 'function' && t.media.renderer.getPosterUrl()) || _constants.IS_STOCK_ANDROID || t.media.originalNode.getAttribute('autoplay'))) { @@ -5019,7 +4995,6 @@ var MediaElementPlayer = function () { }, { key: 'buildkeyboard', value: function buildkeyboard(player, controls, layers, media) { - var t = this; t.getElement(t.container).addEventListener('keydown', function () { @@ -5027,6 +5002,10 @@ var MediaElementPlayer = function () { }); t.globalKeydownCallback = function (event) { + if (!_document2.default.activeElement) { + return true; + } + var container = _document2.default.activeElement.closest('.' + t.options.classPrefix + 'container'), target = t.media.closest('.' + t.options.classPrefix + 'container'); t.hasFocus = !!(container && target && container.id === target.id); @@ -5044,7 +5023,6 @@ var MediaElementPlayer = function () { }, { key: 'onkeydown', value: function onkeydown(player, media, e) { - if (player.hasFocus && player.options.enableKeyboard) { for (var i = 0, total = player.options.keyActions.length; i < total; i++) { var keyAction = player.options.keyActions[i]; @@ -5065,21 +5043,24 @@ var MediaElementPlayer = function () { }, { key: 'play', value: function play() { - this.proxy.play(); + return this.proxy.play(); } }, { key: 'pause', value: function pause() { - this.proxy.pause(); + return this.proxy.pause(); } }, { key: 'load', value: function load() { - this.proxy.load(); + return this.proxy.load(); } }, { key: 'setCurrentTime', value: function setCurrentTime(time) { + var userInteraction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + this.seekUserInteraction = userInteraction; this.proxy.setCurrentTime(time); } }, { @@ -5202,8 +5183,8 @@ var MediaElementPlayer = function () { } } if (t.trackFiles) { - var _loop3 = function _loop3(_i4, _total4) { - var track = t.trackFiles[_i4]; + var _loop3 = function _loop3(_i3, _total3) { + var track = t.trackFiles[_i3]; var newTrack = _document2.default.createElement('track'); newTrack.kind = track.kind; newTrack.label = track.label; @@ -5213,12 +5194,12 @@ var MediaElementPlayer = function () { node.appendChild(newTrack); newTrack.addEventListener('load', function () { this.mode = 'showing'; - node.textTracks[_i4].mode = 'showing'; + node.textTracks[_i3].mode = 'showing'; }); }; - for (var _i4 = 0, _total4 = t.trackFiles.length; _i4 < _total4; _i4++) { - _loop3(_i4, _total4); + for (var _i3 = 0, _total3 = t.trackFiles.length; _i3 < _total3; _i3++) { + _loop3(_i3, _total3); } } @@ -5234,8 +5215,6 @@ var MediaElementPlayer = function () { t.media.renderer.destroy(); } - delete _mejs2.default.players[t.id]; - if (_typeof(t.getElement(t.container)) === 'object') { var offscreen = t.getElement(t.container).parentNode.querySelector('.' + t.options.classPrefix + 'offscreen'); if (offscreen) { @@ -5311,7 +5290,7 @@ _mejs2.default.MediaElementPlayer = MediaElementPlayer; exports.default = MediaElementPlayer; -},{"17":17,"2":2,"25":25,"26":26,"27":27,"28":28,"3":3,"30":30,"5":5,"6":6,"7":7}],17:[function(_dereq_,module,exports){ +},{"18":18,"2":2,"24":24,"25":25,"26":26,"27":27,"28":28,"3":3,"30":30,"6":6,"7":7,"8":8}],18:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -5347,12 +5326,12 @@ var DefaultPlayer = function () { _createClass(DefaultPlayer, [{ key: 'play', value: function play() { - this.media.play(); + return this.media.play(); } }, { key: 'pause', value: function pause() { - this.media.pause(); + return this.media.pause(); } }, { key: 'load', @@ -5492,18 +5471,18 @@ exports.default = DefaultPlayer; _window2.default.DefaultPlayer = DefaultPlayer; -},{"3":3}],18:[function(_dereq_,module,exports){ +},{"3":3}],19:[function(_dereq_,module,exports){ 'use strict'; var _window = _dereq_(3); var _window2 = _interopRequireDefault(_window); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _player = _dereq_(16); +var _player = _dereq_(17); var _player2 = _interopRequireDefault(_player); @@ -5542,7 +5521,7 @@ if (typeof jQuery !== 'undefined') { } })(_mejs2.default.$); -},{"16":16,"3":3,"7":7}],19:[function(_dereq_,module,exports){ +},{"17":17,"3":3,"8":8}],20:[function(_dereq_,module,exports){ 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; @@ -5551,19 +5530,19 @@ var _window = _dereq_(3); var _window2 = _interopRequireDefault(_window); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _renderer = _dereq_(8); +var _renderer = _dereq_(9); -var _general = _dereq_(27); +var _general = _dereq_(26); var _media = _dereq_(28); -var _constants = _dereq_(25); +var _constants = _dereq_(24); -var _dom = _dereq_(26); +var _dom = _dereq_(25); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -5771,8 +5750,8 @@ var DashNativeRenderer = { } }; - var event = (0, _general.createEvent)('rendererready', node); - mediaElement.dispatchEvent(event); + var event = (0, _general.createEvent)('rendererready', node, false); + mediaElement.originalNode.dispatchEvent(event); mediaElement.promises.push(NativeDash.load({ options: options.dash, @@ -5789,763 +5768,72 @@ _media.typeChecks.push(function (url) { _renderer.renderer.add(DashNativeRenderer); -},{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],20:[function(_dereq_,module,exports){ +},{"24":24,"25":25,"26":26,"28":28,"3":3,"8":8,"9":9}],21:[function(_dereq_,module,exports){ 'use strict'; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PluginDetector = undefined; - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _window = _dereq_(3); var _window2 = _interopRequireDefault(_window); -var _document = _dereq_(2); - -var _document2 = _interopRequireDefault(_document); - -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _i18n = _dereq_(5); - -var _i18n2 = _interopRequireDefault(_i18n); - -var _renderer = _dereq_(8); +var _renderer = _dereq_(9); -var _general = _dereq_(27); +var _general = _dereq_(26); -var _constants = _dereq_(25); +var _constants = _dereq_(24); var _media = _dereq_(28); +var _dom = _dereq_(25); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var PluginDetector = exports.PluginDetector = { - plugins: [], +var NativeHls = { - hasPluginVersion: function hasPluginVersion(plugin, v) { - var pv = PluginDetector.plugins[plugin]; - v[1] = v[1] || 0; - v[2] = v[2] || 0; - return pv[0] > v[0] || pv[0] === v[0] && pv[1] > v[1] || pv[0] === v[0] && pv[1] === v[1] && pv[2] >= v[2]; - }, + promise: null, - addPlugin: function addPlugin(p, pluginName, mimeType, activeX, axDetect) { - PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect); - }, + load: function load(settings) { + if (typeof Hls !== 'undefined') { + NativeHls.promise = new Promise(function (resolve) { + resolve(); + }).then(function () { + NativeHls._createPlayer(settings); + }); + } else { + settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/hls.js@latest'; - detectPlugin: function detectPlugin(pluginName, mimeType, activeX, axDetect) { + NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path); + NativeHls.promise.then(function () { + NativeHls._createPlayer(settings); + }); + } - var version = [0, 0, 0], - description = void 0, - ax = void 0; + return NativeHls.promise; + }, - if (_constants.NAV.plugins !== null && _constants.NAV.plugins !== undefined && _typeof(_constants.NAV.plugins[pluginName]) === 'object') { - description = _constants.NAV.plugins[pluginName].description; - if (description && !(typeof _constants.NAV.mimeTypes !== 'undefined' && _constants.NAV.mimeTypes[mimeType] && !_constants.NAV.mimeTypes[mimeType].enabledPlugin)) { - version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.'); - for (var i = 0, total = version.length; i < total; i++) { - version[i] = parseInt(version[i].match(/\d+/), 10); - } - } - } else if (_window2.default.ActiveXObject !== undefined) { - try { - ax = new ActiveXObject(activeX); - if (ax) { - version = axDetect(ax); - } - } catch (e) { - - } - } - return version; + _createPlayer: function _createPlayer(settings) { + var player = new Hls(settings.options); + _window2.default['__ready__' + settings.id](player); + return player; } }; -PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', function (ax) { - var version = [], - d = ax.GetVariable("$version"); +var HlsNativeRenderer = { + name: 'native_hls', + options: { + prefix: 'native_hls', + hls: { + path: 'https://cdn.jsdelivr.net/npm/hls.js@latest', - if (d) { - d = d.split(" ")[1].split(","); - version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; - } - return version; -}); - -var FlashMediaElementRenderer = { - create: function create(mediaElement, options, mediaFiles) { - - var flash = {}; - var isActive = false; - - flash.options = options; - flash.id = mediaElement.id + '_' + flash.options.prefix; - flash.mediaElement = mediaElement; - flash.flashState = {}; - flash.flashApi = null; - flash.flashApiStack = []; - - var props = _mejs2.default.html5media.properties, - assignGettersSetters = function assignGettersSetters(propName) { - flash.flashState[propName] = null; - - var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); - - flash['get' + capName] = function () { - if (flash.flashApi !== null) { - if (typeof flash.flashApi['get_' + propName] === 'function') { - var value = flash.flashApi['get_' + propName](); - - if (propName === 'buffered') { - return { - start: function start() { - return 0; - }, - end: function end() { - return value; - }, - length: 1 - }; - } - return value; - } else { - return null; - } - } else { - return null; - } - }; - - flash['set' + capName] = function (value) { - if (propName === 'src') { - value = (0, _media.absolutizeUrl)(value); - } - - if (flash.flashApi !== null && flash.flashApi['set_' + propName] !== undefined) { - try { - flash.flashApi['set_' + propName](value); - } catch (e) { - - } - } else { - flash.flashApiStack.push({ - type: 'set', - propName: propName, - value: value - }); - } - }; - }; - - for (var i = 0, total = props.length; i < total; i++) { - assignGettersSetters(props[i]); - } - - var methods = _mejs2.default.html5media.methods, - assignMethods = function assignMethods(methodName) { - flash[methodName] = function () { - if (isActive) { - if (flash.flashApi !== null) { - if (flash.flashApi['fire_' + methodName]) { - try { - flash.flashApi['fire_' + methodName](); - } catch (e) { - - } - } else { - - } - } else { - flash.flashApiStack.push({ - type: 'call', - methodName: methodName - }); - } - } - }; - }; - methods.push('stop'); - for (var _i = 0, _total = methods.length; _i < _total; _i++) { - assignMethods(methods[_i]); - } - - var initEvents = ['rendererready']; - - for (var _i2 = 0, _total2 = initEvents.length; _i2 < _total2; _i2++) { - var event = (0, _general.createEvent)(initEvents[_i2], flash); - mediaElement.dispatchEvent(event); - } - - _window2.default['__ready__' + flash.id] = function () { - - flash.flashReady = true; - flash.flashApi = _document2.default.getElementById('__' + flash.id); - - if (flash.flashApiStack.length) { - for (var _i3 = 0, _total3 = flash.flashApiStack.length; _i3 < _total3; _i3++) { - var stackItem = flash.flashApiStack[_i3]; - - if (stackItem.type === 'set') { - var propName = stackItem.propName, - capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); - - flash['set' + capName](stackItem.value); - } else if (stackItem.type === 'call') { - flash[stackItem.methodName](); - } - } - } - }; - - _window2.default['__event__' + flash.id] = function (eventName, message) { - var event = (0, _general.createEvent)(eventName, flash); - if (message) { - try { - event.data = JSON.parse(message); - event.details.data = JSON.parse(message); - } catch (e) { - event.message = message; - } - } - - flash.mediaElement.dispatchEvent(event); - }; - - flash.flashWrapper = _document2.default.createElement('div'); - - if (['always', 'sameDomain'].indexOf(flash.options.shimScriptAccess) === -1) { - flash.options.shimScriptAccess = 'sameDomain'; - } - - var autoplay = mediaElement.originalNode.autoplay, - flashVars = ['uid=' + flash.id, 'autoplay=' + autoplay, 'allowScriptAccess=' + flash.options.shimScriptAccess, 'preload=' + (mediaElement.originalNode.getAttribute('preload') || '')], - isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video', - flashHeight = isVideo ? mediaElement.originalNode.height : 1, - flashWidth = isVideo ? mediaElement.originalNode.width : 1; - - if (mediaElement.originalNode.getAttribute('src')) { - flashVars.push('src=' + mediaElement.originalNode.getAttribute('src')); - } - - if (flash.options.enablePseudoStreaming === true) { - flashVars.push('pseudostreamstart=' + flash.options.pseudoStreamingStartQueryParam); - flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType); - } - - if (flash.options.streamDelimiter) { - flashVars.push('streamdelimiter=' + encodeURIComponent(flash.options.streamDelimiter)); - } - - if (flash.options.proxyType) { - flashVars.push('proxytype=' + flash.options.proxyType); - } - - mediaElement.appendChild(flash.flashWrapper); - mediaElement.originalNode.style.display = 'none'; - - var settings = []; - - if (_constants.IS_IE || _constants.IS_EDGE) { - var specialIEContainer = _document2.default.createElement('div'); - flash.flashWrapper.appendChild(specialIEContainer); - - if (_constants.IS_EDGE) { - settings = ['type="application/x-shockwave-flash"', 'data="' + flash.options.pluginPath + flash.options.filename + '"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '\'"']; - } else { - settings = ['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"', 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"']; - } - - if (!isVideo) { - settings.push('style="clip: rect(0 0 0 0); position: absolute;"'); - } - - specialIEContainer.outerHTML = '' + ('') + ('') + '' + '' + '' + ('') + '' + ('
      ' + _i18n2.default.t('mejs.install-flash') + '
      ') + '
      '; - } else { - - settings = ['id="__' + flash.id + '"', 'name="__' + flash.id + '"', 'play="true"', 'loop="false"', 'quality="high"', 'bgcolor="#000000"', 'wmode="transparent"', 'allowScriptAccess="' + flash.options.shimScriptAccess + '"', 'allowFullScreen="true"', 'type="application/x-shockwave-flash"', 'pluginspage="//www.macromedia.com/go/getflashplayer"', 'src="' + flash.options.pluginPath + flash.options.filename + '"', 'flashvars="' + flashVars.join('&') + '"']; - - if (isVideo) { - settings.push('width="' + flashWidth + '"'); - settings.push('height="' + flashHeight + '"'); - } else { - settings.push('style="position: fixed; left: -9999em; top: -9999em;"'); - } - - flash.flashWrapper.innerHTML = ''; - } - - flash.flashNode = flash.flashWrapper.lastChild; - - flash.hide = function () { - isActive = false; - if (isVideo) { - flash.flashNode.style.display = 'none'; - } - }; - flash.show = function () { - isActive = true; - if (isVideo) { - flash.flashNode.style.display = ''; - } - }; - flash.setSize = function (width, height) { - flash.flashNode.style.width = width + 'px'; - flash.flashNode.style.height = height + 'px'; - - if (flash.flashApi !== null && typeof flash.flashApi.fire_setSize === 'function') { - flash.flashApi.fire_setSize(width, height); - } - }; - - flash.destroy = function () { - flash.flashNode.remove(); - }; - - if (mediaFiles && mediaFiles.length > 0) { - for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) { - if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) { - flash.setSrc(mediaFiles[_i4].src); - break; - } - } - } - - return flash; - } -}; - -var hasFlash = PluginDetector.hasPluginVersion('flash', [10, 0, 0]); - -if (hasFlash) { - _media.typeChecks.push(function (url) { - url = url.toLowerCase(); - - if (url.startsWith('rtmp')) { - if (~url.indexOf('.mp3')) { - return 'audio/rtmp'; - } else { - return 'video/rtmp'; - } - } else if (/\.og(a|g)/i.test(url)) { - return 'audio/ogg'; - } else if (~url.indexOf('.m3u8')) { - return 'application/x-mpegURL'; - } else if (~url.indexOf('.mpd')) { - return 'application/dash+xml'; - } else if (~url.indexOf('.flv')) { - return 'video/flv'; - } else { - return null; - } - }); - - var FlashMediaElementVideoRenderer = { - name: 'flash_video', - options: { - prefix: 'flash_video', - filename: 'mediaelement-flash-video.swf', - enablePseudoStreaming: false, - - pseudoStreamingStartQueryParam: 'start', - - pseudoStreamingType: 'byte', - - proxyType: '', - - streamDelimiter: '' - }, - - canPlayType: function canPlayType(type) { - return ~['video/mp4', 'video/rtmp', 'audio/rtmp', 'rtmp/mp4', 'audio/mp4', 'video/flv', 'video/x-flv'].indexOf(type.toLowerCase()); - }, - - create: FlashMediaElementRenderer.create - - }; - _renderer.renderer.add(FlashMediaElementVideoRenderer); - - var FlashMediaElementHlsVideoRenderer = { - name: 'flash_hls', - options: { - prefix: 'flash_hls', - filename: 'mediaelement-flash-video-hls.swf' - }, - - canPlayType: function canPlayType(type) { - return ~['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()); - }, - - create: FlashMediaElementRenderer.create - }; - _renderer.renderer.add(FlashMediaElementHlsVideoRenderer); - - var FlashMediaElementMdashVideoRenderer = { - name: 'flash_dash', - options: { - prefix: 'flash_dash', - filename: 'mediaelement-flash-video-mdash.swf' - }, - - canPlayType: function canPlayType(type) { - return ~['application/dash+xml'].indexOf(type.toLowerCase()); - }, - - create: FlashMediaElementRenderer.create - }; - _renderer.renderer.add(FlashMediaElementMdashVideoRenderer); - - var FlashMediaElementAudioRenderer = { - name: 'flash_audio', - options: { - prefix: 'flash_audio', - filename: 'mediaelement-flash-audio.swf' - }, - - canPlayType: function canPlayType(type) { - return ~['audio/mp3'].indexOf(type.toLowerCase()); - }, - - create: FlashMediaElementRenderer.create - }; - _renderer.renderer.add(FlashMediaElementAudioRenderer); - - var FlashMediaElementAudioOggRenderer = { - name: 'flash_audio_ogg', - options: { - prefix: 'flash_audio_ogg', - filename: 'mediaelement-flash-audio-ogg.swf' - }, - - canPlayType: function canPlayType(type) { - return ~['audio/ogg', 'audio/oga', 'audio/ogv'].indexOf(type.toLowerCase()); - }, - - create: FlashMediaElementRenderer.create - }; - _renderer.renderer.add(FlashMediaElementAudioOggRenderer); -} - -},{"2":2,"25":25,"27":27,"28":28,"3":3,"5":5,"7":7,"8":8}],21:[function(_dereq_,module,exports){ -'use strict'; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _window = _dereq_(3); - -var _window2 = _interopRequireDefault(_window); - -var _mejs = _dereq_(7); - -var _mejs2 = _interopRequireDefault(_mejs); - -var _renderer = _dereq_(8); - -var _general = _dereq_(27); - -var _constants = _dereq_(25); - -var _media = _dereq_(28); - -var _dom = _dereq_(26); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var NativeFlv = { - - promise: null, - - load: function load(settings) { - if (typeof flvjs !== 'undefined') { - NativeFlv.promise = new Promise(function (resolve) { - resolve(); - }).then(function () { - NativeFlv._createPlayer(settings); - }); - } else { - settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/flv.js@latest'; - - NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path); - NativeFlv.promise.then(function () { - NativeFlv._createPlayer(settings); - }); - } - - return NativeFlv.promise; - }, - - _createPlayer: function _createPlayer(settings) { - flvjs.LoggingControl.enableDebug = settings.options.debug; - flvjs.LoggingControl.enableVerbose = settings.options.debug; - var player = flvjs.createPlayer(settings.options, settings.configs); - _window2.default['__ready__' + settings.id](player); - return player; - } -}; - -var FlvNativeRenderer = { - name: 'native_flv', - options: { - prefix: 'native_flv', - flv: { - path: 'https://cdn.jsdelivr.net/npm/flv.js@latest', - - cors: true, - debug: false - } - }, - - canPlayType: function canPlayType(type) { - return _constants.HAS_MSE && ['video/x-flv', 'video/flv'].indexOf(type.toLowerCase()) > -1; - }, - - create: function create(mediaElement, options, mediaFiles) { - - var originalNode = mediaElement.originalNode, - id = mediaElement.id + '_' + options.prefix; - - var node = null, - flvPlayer = null; - - node = originalNode.cloneNode(true); - options = Object.assign(options, mediaElement.options); - - var props = _mejs2.default.html5media.properties, - events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) { - return e !== 'error'; - }), - attachNativeEvents = function attachNativeEvents(e) { - var event = (0, _general.createEvent)(e.type, mediaElement); - mediaElement.dispatchEvent(event); - }, - assignGettersSetters = function assignGettersSetters(propName) { - var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); - - node['get' + capName] = function () { - return flvPlayer !== null ? node[propName] : null; - }; - - node['set' + capName] = function (value) { - if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { - if (propName === 'src') { - node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value; - if (flvPlayer !== null) { - var _flvOptions = {}; - _flvOptions.type = 'flv'; - _flvOptions.url = value; - _flvOptions.cors = options.flv.cors; - _flvOptions.debug = options.flv.debug; - _flvOptions.path = options.flv.path; - var _flvConfigs = options.flv.configs; - - flvPlayer.destroy(); - for (var i = 0, total = events.length; i < total; i++) { - node.removeEventListener(events[i], attachNativeEvents); - } - flvPlayer = NativeFlv._createPlayer({ - options: _flvOptions, - configs: _flvConfigs, - id: id - }); - flvPlayer.attachMediaElement(node); - flvPlayer.load(); - } - } else { - node[propName] = value; - } - } - }; - }; - - for (var i = 0, total = props.length; i < total; i++) { - assignGettersSetters(props[i]); - } - - _window2.default['__ready__' + id] = function (_flvPlayer) { - mediaElement.flvPlayer = flvPlayer = _flvPlayer; - - var flvEvents = flvjs.Events, - assignEvents = function assignEvents(eventName) { - if (eventName === 'loadedmetadata') { - flvPlayer.unload(); - flvPlayer.detachMediaElement(); - flvPlayer.attachMediaElement(node); - flvPlayer.load(); - } - - node.addEventListener(eventName, attachNativeEvents); - }; - - for (var _i = 0, _total = events.length; _i < _total; _i++) { - assignEvents(events[_i]); - } - - var assignFlvEvents = function assignFlvEvents(name, data) { - if (name === 'error') { - var message = data[0] + ': ' + data[1] + ' ' + data[2].msg; - mediaElement.generateError(message, node.src); - } else { - var _event = (0, _general.createEvent)(name, mediaElement); - _event.data = data; - mediaElement.dispatchEvent(_event); - } - }; - - var _loop = function _loop(eventType) { - if (flvEvents.hasOwnProperty(eventType)) { - flvPlayer.on(flvEvents[eventType], function () { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return assignFlvEvents(flvEvents[eventType], args); - }); - } - }; - - for (var eventType in flvEvents) { - _loop(eventType); - } - }; - - if (mediaFiles && mediaFiles.length > 0) { - for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) { - if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) { - node.setAttribute('src', mediaFiles[_i2].src); - break; - } - } - } - - node.setAttribute('id', id); - - originalNode.parentNode.insertBefore(node, originalNode); - originalNode.autoplay = false; - originalNode.style.display = 'none'; - - var flvOptions = {}; - flvOptions.type = 'flv'; - flvOptions.url = node.src; - flvOptions.cors = options.flv.cors; - flvOptions.debug = options.flv.debug; - flvOptions.path = options.flv.path; - var flvConfigs = options.flv.configs; - - node.setSize = function (width, height) { - node.style.width = width + 'px'; - node.style.height = height + 'px'; - return node; - }; - - node.hide = function () { - if (flvPlayer !== null) { - flvPlayer.pause(); - } - node.style.display = 'none'; - return node; - }; - - node.show = function () { - node.style.display = ''; - return node; - }; - - node.destroy = function () { - if (flvPlayer !== null) { - flvPlayer.destroy(); - } - }; - - var event = (0, _general.createEvent)('rendererready', node); - mediaElement.dispatchEvent(event); - - mediaElement.promises.push(NativeFlv.load({ - options: flvOptions, - configs: flvConfigs, - id: id - })); - - return node; - } -}; - -_media.typeChecks.push(function (url) { - return ~url.toLowerCase().indexOf('.flv') ? 'video/flv' : null; -}); - -_renderer.renderer.add(FlvNativeRenderer); - -},{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],22:[function(_dereq_,module,exports){ -'use strict'; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _window = _dereq_(3); - -var _window2 = _interopRequireDefault(_window); - -var _mejs = _dereq_(7); - -var _mejs2 = _interopRequireDefault(_mejs); - -var _renderer = _dereq_(8); - -var _general = _dereq_(27); - -var _constants = _dereq_(25); - -var _media = _dereq_(28); - -var _dom = _dereq_(26); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var NativeHls = { - - promise: null, - - load: function load(settings) { - if (typeof Hls !== 'undefined') { - NativeHls.promise = new Promise(function (resolve) { - resolve(); - }).then(function () { - NativeHls._createPlayer(settings); - }); - } else { - settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/hls.js@latest'; - - NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path); - NativeHls.promise.then(function () { - NativeHls._createPlayer(settings); - }); - } - - return NativeHls.promise; - }, - - _createPlayer: function _createPlayer(settings) { - var player = new Hls(settings.options); - _window2.default['__ready__' + settings.id](player); - return player; - } -}; - -var HlsNativeRenderer = { - name: 'native_hls', - options: { - prefix: 'native_hls', - hls: { - path: 'https://cdn.jsdelivr.net/npm/hls.js@latest', - - autoStartLoad: false, - debug: false - } - }, + autoStartLoad: false, + debug: false + } + }, canPlayType: function canPlayType(type) { return _constants.HAS_MSE && ['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) > -1; @@ -6751,8 +6039,8 @@ var HlsNativeRenderer = { } }; - var event = (0, _general.createEvent)('rendererready', node); - mediaElement.dispatchEvent(event); + var event = (0, _general.createEvent)('rendererready', node, false); + mediaElement.originalNode.dispatchEvent(event); mediaElement.promises.push(NativeHls.load({ options: options.hls, @@ -6769,7 +6057,7 @@ _media.typeChecks.push(function (url) { _renderer.renderer.add(HlsNativeRenderer); -},{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],23:[function(_dereq_,module,exports){ +},{"24":24,"25":25,"26":26,"28":28,"3":3,"8":8,"9":9}],22:[function(_dereq_,module,exports){ 'use strict'; var _window = _dereq_(3); @@ -6780,15 +6068,15 @@ var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _renderer = _dereq_(8); +var _renderer = _dereq_(9); -var _general = _dereq_(27); +var _general = _dereq_(26); -var _constants = _dereq_(25); +var _constants = _dereq_(24); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -6905,8 +6193,8 @@ var HtmlMediaElement = { } }); - var event = (0, _general.createEvent)('rendererready', node); - mediaElement.dispatchEvent(event); + var event = (0, _general.createEvent)('rendererready', node, false); + mediaElement.originalNode.dispatchEvent(event); return node; } @@ -6916,7 +6204,7 @@ _window2.default.HtmlMediaElement = _mejs2.default.HtmlMediaElement = HtmlMediaE _renderer.renderer.add(HtmlMediaElement); -},{"2":2,"25":25,"27":27,"3":3,"7":7,"8":8}],24:[function(_dereq_,module,exports){ +},{"2":2,"24":24,"26":26,"3":3,"8":8,"9":9}],23:[function(_dereq_,module,exports){ 'use strict'; var _window = _dereq_(3); @@ -6927,17 +6215,17 @@ var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _renderer = _dereq_(8); +var _renderer = _dereq_(9); -var _general = _dereq_(27); +var _general = _dereq_(26); var _media = _dereq_(28); -var _dom = _dereq_(26); +var _dom = _dereq_(25); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -7319,7 +6607,7 @@ var YouTubeIframeRenderer = { var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay']; for (var _i4 = 0, _total4 = initEvents.length; _i4 < _total4; _i4++) { - var event = (0, _general.createEvent)(initEvents[_i4], youtube); + var event = (0, _general.createEvent)(initEvents[_i4], youtube, true); mediaElement.dispatchEvent(event); } }, @@ -7455,7 +6743,7 @@ _media.typeChecks.push(function (url) { _renderer.renderer.add(YouTubeIframeRenderer); -},{"2":2,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],25:[function(_dereq_,module,exports){ +},{"2":2,"25":25,"26":26,"28":28,"3":3,"8":8,"9":9}],24:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -7471,7 +6759,7 @@ var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); @@ -7491,24 +6779,7 @@ var IS_FIREFOX = exports.IS_FIREFOX = /firefox/i.test(UA); var IS_SAFARI = exports.IS_SAFARI = /safari/i.test(UA) && !IS_CHROME; var IS_STOCK_ANDROID = exports.IS_STOCK_ANDROID = /^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(UA); var HAS_MSE = exports.HAS_MSE = 'MediaSource' in _window2.default; -var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = function () { - var element = _document2.default.createElement('x'), - documentElement = _document2.default.documentElement, - getComputedStyle = _window2.default.getComputedStyle; - - if (!('pointerEvents' in element.style)) { - return false; - } - - element.style.pointerEvents = 'auto'; - element.style.pointerEvents = 'x'; - documentElement.appendChild(element); - var supports = getComputedStyle && (getComputedStyle(element, '') || {}).pointerEvents === 'auto'; - element.remove(); - return !!supports; -}(); - -var SUPPORT_PASSIVE_EVENT = exports.SUPPORT_PASSIVE_EVENT = function () { +var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = true;var SUPPORT_PASSIVE_EVENT = exports.SUPPORT_PASSIVE_EVENT = function () { var supportsPassive = false; try { var opts = Object.defineProperty({}, 'passive', { @@ -7641,7 +6912,7 @@ _mejs2.default.Features.isFullScreen = isFullScreen; _mejs2.default.Features.requestFullScreen = requestFullScreen; _mejs2.default.Features.cancelFullScreen = cancelFullScreen; -},{"2":2,"3":3,"7":7}],26:[function(_dereq_,module,exports){ +},{"2":2,"3":3,"8":8}],25:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -7665,7 +6936,7 @@ var _document = _dereq_(2); var _document2 = _interopRequireDefault(_document); -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); @@ -7870,7 +7141,7 @@ _mejs2.default.Utils.visible = visible; _mejs2.default.Utils.ajax = ajax; _mejs2.default.Utils.loadScript = loadScript; -},{"2":2,"3":3,"7":7}],27:[function(_dereq_,module,exports){ +},{"2":2,"3":3,"8":8}],26:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -7884,7 +7155,7 @@ exports.createEvent = createEvent; exports.isNodeAfter = isNodeAfter; exports.isString = isString; -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); @@ -7967,7 +7238,7 @@ function splitEvents(events, id) { return ret; } -function createEvent(eventName, target) { +function createEvent(eventName, target, isIframe) { if (typeof eventName !== 'string') { throw new Error('Event name must be a string'); @@ -7975,7 +7246,8 @@ function createEvent(eventName, target) { var eventFrags = eventName.match(/([a-z]+\.([a-z]+))/i), detail = { - target: target + target: target, + isIframe: isIframe }; if (eventFrags !== null) { @@ -8006,7 +7278,65 @@ _mejs2.default.Utils.createEvent = createEvent; _mejs2.default.Utils.isNodeAfter = isNodeAfter; _mejs2.default.Utils.isString = isString; -},{"7":7}],28:[function(_dereq_,module,exports){ +},{"8":8}],27:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.generateControlButton = generateControlButton; + +var _mejs = _dereq_(8); + +var _mejs2 = _interopRequireDefault(_mejs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function generateControlButton(playerId, ariaLabel, title, iconSprite, icons, classPrefix) { + var buttonClass = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null; + var ariaDescribedby = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : ''; + var ariaPressed = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : null; + + + if (typeof playerId !== 'string') { + throw new Error('`ariaControls` argument must be a string'); + } + if (typeof ariaLabel !== 'string') { + throw new Error('`ariaLabel` argument must be a string'); + } + if (typeof title !== 'string') { + throw new Error('`title` argument must be a string'); + } + if (typeof iconSprite !== 'string') { + throw new Error('`iconSprite` argument must be a string'); + } + if (typeof ariaDescribedby !== 'string') { + throw new Error('`ariaDescribedby` argument must be a string'); + } + if (!Array.isArray(icons)) { + throw new Error('`icons` argument must be an array'); + } + if (typeof classPrefix !== 'string') { + throw new Error('`classPrefix` argument must be a string'); + } + + var className = buttonClass ? 'class="' + buttonClass + '" ' : ''; + + var ariaDescribedbyAttr = ariaDescribedby !== '' ? 'aria-describedby="' + ariaDescribedby + '" ' : ''; + + var ariaPressedAttr = ariaPressed !== null ? 'aria-pressed="' + ariaPressed + '"' : ''; + + var iconHtml = icons.map(function (icon) { + return '\n'; + }); + + return ''; +} + +_mejs2.default.Utils = _mejs2.default.Utils || {}; +_mejs2.default.Utils.generateControlButton = generateControlButton; + +},{"8":8}],28:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -8020,11 +7350,11 @@ exports.getTypeFromFile = getTypeFromFile; exports.getExtension = getExtension; exports.normalizeExtension = normalizeExtension; -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); -var _general = _dereq_(27); +var _general = _dereq_(26); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -8076,7 +7406,7 @@ function getTypeFromFile(url) { var mime = 'video/mp4'; if (normalizedExt) { - if (~['mp4', 'm4v', 'ogg', 'ogv', 'webm', 'flv', 'mpeg'].indexOf(normalizedExt)) { + if (~['mp4', 'm4v', 'ogg', 'ogv', 'webm', 'mpeg'].indexOf(normalizedExt)) { mime = 'video/' + normalizedExt; } else if ('mov' === normalizedExt) { mime = 'video/quicktime'; @@ -8131,7 +7461,7 @@ _mejs2.default.Utils.getTypeFromFile = getTypeFromFile; _mejs2.default.Utils.getExtension = getExtension; _mejs2.default.Utils.normalizeExtension = normalizeExtension; -},{"27":27,"7":7}],29:[function(_dereq_,module,exports){ +},{"26":26,"8":8}],29:[function(_dereq_,module,exports){ 'use strict'; var _document = _dereq_(2); @@ -8142,6 +7472,10 @@ var _promisePolyfill = _dereq_(4); var _promisePolyfill2 = _interopRequireDefault(_promisePolyfill); +var _svg4everybody = _dereq_(5); + +var _svg4everybody2 = _interopRequireDefault(_svg4everybody); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (function (arr) { @@ -8265,6 +7599,8 @@ if (!window.Promise) { window.Promise = _promisePolyfill2.default; } +(0, _svg4everybody2.default)(); + (function (constructor) { if (constructor && constructor.prototype && constructor.prototype.children === null) { Object.defineProperty(constructor.prototype, 'children', { @@ -8284,7 +7620,7 @@ if (!window.Promise) { } })(window.Node || window.Element); -},{"2":2,"4":4}],30:[function(_dereq_,module,exports){ +},{"2":2,"4":4,"5":5}],30:[function(_dereq_,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -8296,7 +7632,7 @@ exports.timeCodeToSeconds = timeCodeToSeconds; exports.calculateTimeFormat = calculateTimeFormat; exports.convertSMPTEtoSeconds = convertSMPTEtoSeconds; -var _mejs = _dereq_(7); +var _mejs = _dereq_(8); var _mejs2 = _interopRequireDefault(_mejs); @@ -8537,4 +7873,4 @@ _mejs2.default.Utils.timeCodeToSeconds = timeCodeToSeconds; _mejs2.default.Utils.calculateTimeFormat = calculateTimeFormat; _mejs2.default.Utils.convertSMPTEtoSeconds = convertSMPTEtoSeconds; -},{"7":7}]},{},[29,6,5,15,23,20,19,21,22,24,16,18,17,9,10,11,12,13,14]); +},{"8":8}]},{},[29,7,6,16,22,20,21,23,17,19,18,10,11,12,13,14,15]); diff --git a/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.min.js b/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.min.js index c3b41e13392af..dd9b32770b219 100644 --- a/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.min.js +++ b/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.min.js @@ -3,10 +3,10 @@ * http://www.mediaelementjs.com/ * * Wrapper that mimics native HTML5 MediaElement (audio and video) - * using a variety of technologies (pure JavaScript, Flash, iframe) + * using a variety of technologies (pure JavaScript, iframe) * * Copyright 2010-2017, John Dyer (http://j.hn/) * License: MIT * */ -!function r(a,s,l){function d(n,e){if(!s[n]){if(!a[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var o=new Error("Cannot find module '"+n+"'");throw o.code="MODULE_NOT_FOUND",o}var i=s[n]={exports:{}};a[n][0].call(i.exports,function(e){var t=a[n][1][e];return d(t||e)},i,i.exports,r,a,s,l)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;e',o.addControlElement(t,"fullscreen"),t.addEventListener("click",function(){m.HAS_TRUE_NATIVE_FULLSCREEN&&m.IS_FULLSCREEN||n.isFullScreen?n.exitFullScreen():n.enterFullScreen()}),n.fullscreenBtn=t,o.options.keyActions.push({keys:[70],action:function(e,t,n,o){o.ctrlKey||void 0!==e.enterFullScreen&&(e.isFullScreen?e.exitFullScreen():e.enterFullScreen())}}),o.exitFullscreenCallback=function(e){var t=e.which||e.keyCode||0;o.options.enableKeyboard&&27===t&&(m.HAS_TRUE_NATIVE_FULLSCREEN&&m.IS_FULLSCREEN||o.isFullScreen)&&n.exitFullScreen()},o.globalBind("keydown",o.exitFullscreenCallback),o.normalHeight=0,o.normalWidth=0,m.HAS_TRUE_NATIVE_FULLSCREEN){n.globalBind(m.FULLSCREEN_EVENT_NAME,function(){n.isFullScreen&&(m.isFullScreen()?(n.isNativeFullScreen=!0,n.setControlsSize()):(n.isNativeFullScreen=!1,n.exitFullScreen()))})}}},cleanfullscreen:function(e){e.exitFullScreen(),e.globalUnbind("keydown",e.exitFullscreenCallback)},detectFullscreenMode:function(){var e=null!==this.media.rendererName&&/(native|html5)/i.test(this.media.rendererName),t="";return m.HAS_TRUE_NATIVE_FULLSCREEN&&e?t="native-native":m.HAS_TRUE_NATIVE_FULLSCREEN&&!e?t="plugin-native":this.usePluginFullScreen&&m.SUPPORT_POINTER_EVENTS&&(t="plugin-click"),this.fullscreenMode=t},enterFullScreen:function(){var o=this,e=null!==o.media.rendererName&&/(html5|native)/i.test(o.media.rendererName),t=getComputedStyle(o.getElement(o.container));if(o.isVideo)if(!1===o.options.useFakeFullscreen&&(m.IS_IOS||m.IS_SAFARI)&&m.HAS_IOS_FULLSCREEN&&"function"==typeof o.media.originalNode.webkitEnterFullscreen&&o.media.originalNode.canPlayType((0,g.getTypeFromFile)(o.media.getSrc())))o.media.originalNode.webkitEnterFullscreen();else{if((0,v.addClass)(p.default.documentElement,o.options.classPrefix+"fullscreen"),(0,v.addClass)(o.getElement(o.container),o.options.classPrefix+"container-fullscreen"),o.normalHeight=parseFloat(t.height),o.normalWidth=parseFloat(t.width),"native-native"!==o.fullscreenMode&&"plugin-native"!==o.fullscreenMode||(m.requestFullScreen(o.getElement(o.container)),o.isInIframe&&setTimeout(function e(){if(o.isNativeFullScreen){var t=f.default.innerWidth||p.default.documentElement.clientWidth||p.default.body.clientWidth,n=screen.width;.002*n',l.addEventListener("click",function(){i.paused?i.play():i.pause()});var d=l.querySelector("button");function u(e){"play"===e?((0,m.removeClass)(l,i.options.classPrefix+"play"),(0,m.removeClass)(l,i.options.classPrefix+"replay"),(0,m.addClass)(l,i.options.classPrefix+"pause"),d.setAttribute("title",s),d.setAttribute("aria-label",s)):((0,m.removeClass)(l,i.options.classPrefix+"pause"),(0,m.removeClass)(l,i.options.classPrefix+"replay"),(0,m.addClass)(l,i.options.classPrefix+"play"),d.setAttribute("title",a),d.setAttribute("aria-label",a))}i.addControlElement(l,"playpause"),u("pse"),o.addEventListener("loadedmetadata",function(){-1===o.rendererName.indexOf("flash")&&u("pse")}),o.addEventListener("play",function(){u("play")}),o.addEventListener("playing",function(){u("play")}),o.addEventListener("pause",function(){u("pse")}),o.addEventListener("ended",function(){e.options.loop||((0,m.removeClass)(l,i.options.classPrefix+"pause"),(0,m.removeClass)(l,i.options.classPrefix+"play"),(0,m.addClass)(l,i.options.classPrefix+"replay"),d.setAttribute("title",a),d.setAttribute("aria-label",a))})}})},{16:16,2:2,26:26,27:27,5:5}],11:[function(e,t,n){"use strict";var p=r(e(2)),o=e(16),i=r(o),m=r(e(5)),y=e(25),E=e(30),b=e(26);function r(e){return e&&e.__esModule?e:{default:e}}Object.assign(o.config,{enableProgressTooltip:!0,useSmoothHover:!0,forceLive:!1}),Object.assign(i.default.prototype,{buildprogress:function(h,s,e,d){var u=0,v=!1,c=!1,g=this,t=h.options.autoRewind,n=h.options.enableProgressTooltip?'00:00':"",o=p.default.createElement("div");o.className=g.options.classPrefix+"time-rail",o.innerHTML=''+n+"",g.addControlElement(o,"progress"),g.options.keyActions.push({keys:[37,227],action:function(e){if(!isNaN(e.duration)&&0o+n.left&&(d=o+n.left),a=(l=d-n.left)/o,g.newTime=a*g.getDuration(),v&&null!==g.getCurrentTime()&&g.newTime.toFixed(4)!==g.getCurrentTime().toFixed(4)&&(g.setCurrentRailHandle(g.newTime),g.updateCurrent(g.newTime)),!y.IS_IOS&&!y.IS_ANDROID){if(l<0&&(l=0),g.options.useSmoothHover&&null!==r&&void 0!==window[r]){var u=new window[r](getComputedStyle(g.handle)[i]).m41,c=l/parseFloat(getComputedStyle(g.total).width)-u/parseFloat(getComputedStyle(g.total).width);g.hovered.style.left=u+"px",g.setTransformStyle(g.hovered,"scaleX("+c+")"),g.hovered.setAttribute("pos",l),0<=c?(0,b.removeClass)(g.hovered,"negative"):(0,b.addClass)(g.hovered,"negative")}if(g.timefloat){var f=g.timefloat.offsetWidth/2,p=mejs.Utils.offset(g.getElement(g.container)),m=getComputedStyle(g.timefloat);s=d-p.left=g.getElement(g.container).offsetWidth-f?g.total.offsetWidth-f:l,(0,b.hasClass)(g.getElement(g.container),g.options.classPrefix+"long-video")&&(s+=parseFloat(m.marginLeft)/2+g.timefloat.offsetWidth/2),g.timefloat.style.left=s+"px",g.timefloatcurrent.innerHTML=(0,E.secondsToTimeCode)(g.newTime,h.options.alwaysShowHours,h.options.showTimecodeFrameCount,h.options.framesPerSecond,h.options.secondsDecimalLength,h.options.timeFormat),g.timefloat.style.display="block"}}}else y.IS_IOS||y.IS_ANDROID||!g.timefloat||(s=g.timefloat.offsetWidth+o>=g.getElement(g.container).offsetWidth?g.timefloat.offsetWidth/2:0,g.timefloat.style.left=s+"px",g.timefloat.style.left=s+"px",g.timefloat.style.display="block")},f=function(){1e3<=new Date-u&&g.play()};g.slider.addEventListener("focus",function(){h.options.autoRewind=!1}),g.slider.addEventListener("blur",function(){h.options.autoRewind=t}),g.slider.addEventListener("keydown",function(e){if(1e3<=new Date-u&&(c=g.paused),g.options.enableKeyboard&&g.options.keyActions.length){var t=e.which||e.keyCode||0,n=g.getDuration(),o=h.options.defaultSeekForwardInterval(d),i=h.options.defaultSeekBackwardInterval(d),r=g.getCurrentTime(),a=g.getElement(g.container).querySelector("."+g.options.classPrefix+"volume-slider");if(38===t||40===t){a&&(a.style.display="block"),g.isVideo&&(g.showControls(),g.startControlsTimer());var s=38===t?Math.min(g.volume+.1,1):Math.max(g.volume-.1,0),l=s<=0;return g.setVolume(s),void g.setMuted(l)}switch(a&&(a.style.display="none"),t){case 37:g.getDuration()!==1/0&&(r-=i);break;case 39:g.getDuration()!==1/0&&(r+=o);break;case 36:r=0;break;case 35:r=n;break;case 13:case 32:return void(y.IS_FIREFOX&&(g.paused?g.play():g.pause()));default:return}r=r<0||isNaN(r)?0:n<=r?n:Math.floor(r),u=new Date,c||h.pause(),setTimeout(function(){g.setCurrentTime(r)},0),r | "}),Object.assign(i.default.prototype,{buildcurrent:function(e,t,n,o){var i=this,r=a.default.createElement("div");r.className=i.options.classPrefix+"time",r.setAttribute("role","timer"),r.setAttribute("aria-live","off"),r.innerHTML=''+(0,s.secondsToTimeCode)(0,e.options.alwaysShowHours,e.options.showTimecodeFrameCount,e.options.framesPerSecond,e.options.secondsDecimalLength,e.options.timeFormat)+"",i.addControlElement(r,"current"),e.updateCurrent(),i.updateTimeCallback=function(){i.controlsAreVisible&&e.updateCurrent()},o.addEventListener("timeupdate",i.updateTimeCallback)},cleancurrent:function(e,t,n,o){o.removeEventListener("timeupdate",e.updateTimeCallback)},buildduration:function(e,t,n,o){var i=this;if(t.lastChild.querySelector("."+i.options.classPrefix+"currenttime"))t.querySelector("."+i.options.classPrefix+"time").innerHTML+=i.options.timeAndDurationSeparator+''+(0,s.secondsToTimeCode)(i.options.duration,i.options.alwaysShowHours,i.options.showTimecodeFrameCount,i.options.framesPerSecond,i.options.secondsDecimalLength,i.options.timeFormat)+"";else{t.querySelector("."+i.options.classPrefix+"currenttime")&&(0,l.addClass)(t.querySelector("."+i.options.classPrefix+"currenttime").parentNode,i.options.classPrefix+"currenttime-container");var r=a.default.createElement("div");r.className=i.options.classPrefix+"time "+i.options.classPrefix+"duration-container",r.innerHTML=''+(0,s.secondsToTimeCode)(i.options.duration,i.options.alwaysShowHours,i.options.showTimecodeFrameCount,i.options.framesPerSecond,i.options.secondsDecimalLength,i.options.timeFormat)+"",i.addControlElement(r,"duration")}i.updateDurationCallback=function(){i.controlsAreVisible&&e.updateDuration()},o.addEventListener("timeupdate",i.updateDurationCallback)},cleanduration:function(e,t,n,o){o.removeEventListener("timeupdate",e.updateDurationCallback)},updateCurrent:function(){var e=this,t=e.getCurrentTime();isNaN(t)&&(t=0);var n=(0,s.secondsToTimeCode)(t,e.options.alwaysShowHours,e.options.showTimecodeFrameCount,e.options.framesPerSecond,e.options.secondsDecimalLength,e.options.timeFormat);5',o.captions.style.display="none",t.insertBefore(o.captions,t.firstChild),o.captionsText=o.captions.querySelector("."+i.options.classPrefix+"captions-text"),o.captionsButton=L.default.createElement("div"),o.captionsButton.className=i.options.classPrefix+"button "+i.options.classPrefix+"captions-button",o.captionsButton.innerHTML='
      ",i.addControlElement(o.captionsButton,"tracks"),o.captionsButton.querySelector("."+i.options.classPrefix+"captions-selector-input").disabled=!1,o.chaptersButton=L.default.createElement("div"),o.chaptersButton.className=i.options.classPrefix+"button "+i.options.classPrefix+"chapters-button",o.chaptersButton.innerHTML='
        ';for(var u=0,c=0;c"},checkForTracks:function(){var e=this,t=!1;if(e.options.hideCaptionsButtonWhenEmpty){for(var n=0,o=e.tracks.length;n";for(var o=r.chaptersButton.querySelectorAll('input[type="radio"]'),i=r.chaptersButton.querySelectorAll("."+r.options.classPrefix+"chapters-selector-label"),a=0,s=o.length;a>1].start,a=e[i].stop,r<=t&&t ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,parse:function(e){for(var t=e.split(/\r?\n/),n=[],o=void 0,i=void 0,r=void 0,a=0,s=t.length;a$1"),n.push({identifier:r,start:0===(0,m.convertSMPTEtoSeconds)(o[1])?.2:(0,m.convertSMPTEtoSeconds)(o[1]),stop:(0,m.convertSMPTEtoSeconds)(o[3]),text:i,settings:o[5]})}r=""}return n}},dfxp:{parse:function(e){var t=L.default.adoptNode((new DOMParser).parseFromString(e,"application/xml").documentElement).querySelector("div"),n=t.querySelectorAll("p"),o=L.default.getElementById(t.getAttribute("style")),i=[],r=void 0;if(o){o.removeAttribute("id");var a=o.attributes;if(a.length){r={};for(var s=0,l=a.length;s$1"),i.push(f)}return i}}}},{16:16,2:2,26:26,27:27,30:30,5:5,7:7}],14:[function(e,t,n){"use strict";var x=r(e(2)),o=e(16),i=r(o),w=r(e(5)),P=e(25),T=e(27),C=e(26);function r(e){return e&&e.__esModule?e:{default:e}}Object.assign(o.config,{muteText:null,unmuteText:null,allyVolumeControlText:null,hideVolumeOnTouchDevices:!0,audioVolume:"horizontal",videoVolume:"vertical",startVolume:.8}),Object.assign(i.default.prototype,{buildvolume:function(e,t,n,o){if(!P.IS_ANDROID&&!P.IS_IOS||!this.options.hideVolumeOnTouchDevices){var a=this,s=a.isVideo?a.options.videoVolume:a.options.audioVolume,r=(0,T.isString)(a.options.muteText)?a.options.muteText:w.default.t("mejs.mute"),l=(0,T.isString)(a.options.unmuteText)?a.options.unmuteText:w.default.t("mejs.unmute"),i=(0,T.isString)(a.options.allyVolumeControlText)?a.options.allyVolumeControlText:w.default.t("mejs.volume-help-text"),d=x.default.createElement("div");if(d.className=a.options.classPrefix+"button "+a.options.classPrefix+"volume-button "+a.options.classPrefix+"mute",d.innerHTML="horizontal"===s?'':''+i+'
        ',a.addControlElement(d,"volume"),a.options.keyActions.push({keys:[38],action:function(e){var t=e.getElement(e.container).querySelector("."+a.options.classPrefix+"volume-slider");t&&t.matches(":focus")&&(t.style.display="block"),e.isVideo&&(e.showControls(),e.startControlsTimer());var n=Math.min(e.volume+.1,1);e.setVolume(n),0'+i+'
        ',d.parentNode.insertBefore(u,d.nextSibling)}var c=!1,f=!1,p=!1,m="vertical"===s?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-slider"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-slider"),h="vertical"===s?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-total"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-total"),v="vertical"===s?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-current"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-current"),g="vertical"===s?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-handle"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-handle"),y=function(e){if(null!==e&&!isNaN(e)&&void 0!==e){if(e=Math.max(0,e),0===(e=Math.min(e,1))){(0,C.removeClass)(d,a.options.classPrefix+"mute"),(0,C.addClass)(d,a.options.classPrefix+"unmute");var t=d.firstElementChild;t.setAttribute("title",l),t.setAttribute("aria-label",l)}else{(0,C.removeClass)(d,a.options.classPrefix+"unmute"),(0,C.addClass)(d,a.options.classPrefix+"mute");var n=d.firstElementChild;n.setAttribute("title",r),n.setAttribute("aria-label",r)}var o=100*e+"%",i=getComputedStyle(g);"vertical"===s?(v.style.bottom=0,v.style.height=o,g.style.bottom=o,g.style.marginBottom=-parseFloat(i.height)/2+"px"):(v.style.left=0,v.style.width=o,g.style.left=o,g.style.marginLeft=-parseFloat(i.width)/2+"px")}},E=function(e){var t=(0,C.offset)(h),n=getComputedStyle(h);p=!0;var o=null;if("vertical"===s){var i=parseFloat(n.height);if(o=(i-(e.pageY-t.top))/i,0===t.top||0===t.left)return}else{var r=parseFloat(n.width);o=(e.pageX-t.left)/r}o=Math.max(0,o),o=Math.min(o,1),y(o),a.setMuted(0===o),a.setVolume(o),e.preventDefault(),e.stopPropagation()},b=function(){a.muted?(y(0),(0,C.removeClass)(d,a.options.classPrefix+"mute"),(0,C.addClass)(d,a.options.classPrefix+"unmute")):(y(o.volume),(0,C.removeClass)(d,a.options.classPrefix+"unmute"),(0,C.addClass)(d,a.options.classPrefix+"mute"))};e.getElement(e.container).addEventListener("keydown",function(e){!!e.target.closest("."+a.options.classPrefix+"container")||"vertical"!==s||(m.style.display="none")}),d.addEventListener("mouseenter",function(e){e.target===d&&(m.style.display="block",f=!0,e.preventDefault(),e.stopPropagation())}),d.addEventListener("focusin",function(){m.style.display="block",f=!0}),d.addEventListener("focusout",function(e){e.relatedTarget&&(!e.relatedTarget||e.relatedTarget.matches("."+a.options.classPrefix+"volume-slider"))||"vertical"!==s||(m.style.display="none")}),d.addEventListener("mouseleave",function(){f=!1,c||"vertical"!==s||(m.style.display="none")}),d.addEventListener("focusout",function(){f=!1}),d.addEventListener("keydown",function(e){if(a.options.enableKeyboard&&a.options.keyActions.length){var t=e.which||e.keyCode||0,n=o.volume;switch(t){case 38:n=Math.min(n+.1,1);break;case 40:n=Math.max(0,n-.1);break;default:return!0}c=!1,y(n),o.setVolume(n),e.preventDefault(),e.stopPropagation()}}),d.querySelector("button").addEventListener("click",function(){o.setMuted(!o.muted);var e=(0,T.createEvent)("volumechange",o);o.dispatchEvent(e)}),m.addEventListener("dragstart",function(){return!1}),m.addEventListener("mouseover",function(){f=!0}),m.addEventListener("focusin",function(){m.style.display="block",f=!0}),m.addEventListener("focusout",function(){f=!1,c||"vertical"!==s||(m.style.display="none")}),m.addEventListener("mousedown",function(e){E(e),a.globalBind("mousemove.vol",function(e){var t=e.target;c&&(t===m||t.closest("vertical"===s?"."+a.options.classPrefix+"volume-slider":"."+a.options.classPrefix+"horizontal-volume-slider"))&&E(e)}),a.globalBind("mouseup.vol",function(){c=!1,f||"vertical"!==s||(m.style.display="none")}),c=!0,e.preventDefault(),e.stopPropagation()}),o.addEventListener("volumechange",function(e){var t;c||b(),t=Math.floor(100*o.volume),m.setAttribute("aria-valuenow",t),m.setAttribute("aria-valuetext",t+"%")});var S=!1;o.addEventListener("rendererready",function(){p||setTimeout(function(){S=!0,(0===e.options.startVolume||o.originalNode.muted)&&o.setMuted(!0),o.setVolume(e.options.startVolume),a.setControlsSize()},250)}),o.addEventListener("loadedmetadata",function(){setTimeout(function(){p||S||((0===e.options.startVolume||o.originalNode.muted)&&o.setMuted(!0),0===e.options.startVolume&&(e.options.startVolume=0),o.setVolume(e.options.startVolume),a.setControlsSize()),S=!1},250)}),(0===e.options.startVolume||o.originalNode.muted)&&(o.setMuted(!0),0===e.options.startVolume&&(e.options.startVolume=0),b()),a.getElement(a.container).addEventListener("controlsresize",function(){b()})}}})},{16:16,2:2,25:25,26:26,27:27,5:5}],15:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.EN={"mejs.plural-form":1,"mejs.download-file":"Download File","mejs.install-flash":"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.volume-help-text":"Use Up/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}},{}],16:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.config=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){function o(e,t){for(var n=0;n
        ',n.getElement(n.container).addEventListener("focus",function(e){if(!n.controlsAreVisible&&!n.hasFocus&&n.controlsEnabled){n.showControls(!0);var t=(0,m.isNodeAfter)(e.relatedTarget,n.getElement(n.container))?"."+n.options.classPrefix+"controls ."+n.options.classPrefix+"button:last-child > button":"."+n.options.classPrefix+"playpause-button > button";n.getElement(n.container).querySelector(t).focus()}}),n.node.parentNode.insertBefore(n.getElement(n.container),n.node),n.options.features.length||n.options.useDefaultControls||(n.getElement(n.container).style.background="transparent",n.getElement(n.container).querySelector("."+n.options.classPrefix+"controls").style.display="none"),n.isVideo&&"fill"===n.options.stretching&&!P.hasClass(n.getElement(n.container).parentNode,n.options.classPrefix+"fill-container")){n.outerContainer=n.media.parentNode;var r=x.default.createElement("div");r.className=n.options.classPrefix+"fill-container",n.getElement(n.container).parentNode.insertBefore(r,n.getElement(n.container)),r.appendChild(n.getElement(n.container))}w.IS_ANDROID&&P.addClass(n.getElement(n.container),n.options.classPrefix+"android"),w.IS_IOS&&P.addClass(n.getElement(n.container),n.options.classPrefix+"ios"),w.IS_IPAD&&P.addClass(n.getElement(n.container),n.options.classPrefix+"ipad"),w.IS_IPHONE&&P.addClass(n.getElement(n.container),n.options.classPrefix+"iphone"),P.addClass(n.getElement(n.container),n.isVideo?n.options.classPrefix+"video":n.options.classPrefix+"audio"),n.getElement(n.container).querySelector("."+n.options.classPrefix+"mediaelement").appendChild(n.node),(n.media.player=n).controls=n.getElement(n.container).querySelector("."+n.options.classPrefix+"controls"),n.layers=n.getElement(n.container).querySelector("."+n.options.classPrefix+"layers");var a=n.isVideo?"video":"audio",s=a.substring(0,1).toUpperCase()+a.substring(1);0=n.width?n.width/n.height:n.height/n.width,n.setPlayerSize(n.width,n.height),e.pluginWidth=n.width,e.pluginHeight=n.height}if(f.default.MepDefaults=e,new d.default(n.media,e,n.mediaFiles),void 0!==n.getElement(n.container)&&n.options.features.length&&n.controlsAreVisible&&!n.options.hideVideoControlsOnLoad){var l=(0,m.createEvent)("controlsshown",n.getElement(n.container));n.getElement(n.container).dispatchEvent(l)}}},{key:"showControls",value:function(e){var i=this;if(e=void 0===e||e,!i.controlsAreVisible&&i.isVideo){if(e)!function(){P.fadeIn(i.getElement(i.controls),200,function(){P.removeClass(i.getElement(i.controls),i.options.classPrefix+"offscreen");var e=(0,m.createEvent)("controlsshown",i.getElement(i.container));i.getElement(i.container).dispatchEvent(e)});for(var n=i.getElement(i.container).querySelectorAll("."+i.options.classPrefix+"control"),e=function(e,t){P.fadeIn(n[e],200,function(){P.removeClass(n[e],i.options.classPrefix+"offscreen")})},t=0,o=n.length;t'),e.message&&(a="

        "+e.message+"

        "),e.urls)for(var d=0,u=e.urls.length;d'+f.default.i18n.t("mejs.download-file")+": "+c.src+""}}a&&o.getElement(o.layers).querySelector("."+o.options.classPrefix+"overlay-error")&&(r.innerHTML=a,o.getElement(o.layers).querySelector("."+o.options.classPrefix+"overlay-error").innerHTML=""+s+r.outerHTML,o.getElement(o.layers).querySelector("."+o.options.classPrefix+"overlay-error").parentNode.style.display="block"),o.controlsEnabled&&o.disableControls()}},{key:"setPlayerSize",value:function(e,t){var n=this;if(!n.options.setDimensions)return!1;switch(void 0!==e&&(n.width=e),void 0!==t&&(n.height=t),n.options.stretching){case"fill":n.isVideo?n.setFillMode():n.setDimensions(n.width,n.height);break;case"responsive":n.setResponsiveMode();break;case"none":n.setDimensions(n.width,n.height);break;default:!0===n.hasFluidMode()?n.setResponsiveMode():n.setDimensions(n.width,n.height)}}},{key:"hasFluidMode",value:function(){var e=this;return-1!==e.height.toString().indexOf("%")||e.node&&e.node.style.maxWidth&&"none"!==e.node.style.maxWidth&&e.node.style.maxWidth!==e.width||e.node&&e.node.currentStyle&&"100%"===e.node.currentStyle.maxWidth}},{key:"setResponsiveMode",value:function(){var o=this,e=function(){for(var t=void 0,n=o.getElement(o.container);n;){try{if(w.IS_FIREFOX&&"html"===n.tagName.toLowerCase()&&S.default.self!==S.default.top&&null!==S.default.frameElement)return S.default.frameElement;t=n.parentElement}catch(e){t=n.parentElement}if(t&&P.visible(t))return t;n=t}return null}(),t=e?getComputedStyle(e,null):getComputedStyle(x.default.body,null),n=o.isVideo?o.node.videoWidth&&0=o.width?o.node.videoWidth/o.node.videoHeight:o.node.videoHeight/o.node.videoWidth:o.initialAspectRatio,(isNaN(e)||e<.01||100=o.width?parseFloat(l/r,10):parseFloat(l*r,10):i,isNaN(s)&&(s=a),0img");a&&(a.style.display="");for(var s=e.getElement(e.container).querySelectorAll("object, embed, iframe, video"),l=e.height,d=e.width,u=i,c=l*i/d,f=d*r/l,p=r,m=i',n.appendChild(r),a.style.display="none",a.className=i.options.classPrefix+"overlay "+i.options.classPrefix+"layer",a.innerHTML='
        ',n.appendChild(a),s.className=i.options.classPrefix+"overlay "+i.options.classPrefix+"layer "+i.options.classPrefix+"overlay-play",s.innerHTML='
        ',s.addEventListener("click",function(){if(i.options.clickToPlayPause){var e=i.getElement(i.container).querySelector("."+i.options.classPrefix+"overlay-button"),t=e.getAttribute("aria-pressed");i.paused?i.play():i.pause(),e.setAttribute("aria-pressed",!!t),i.getElement(i.container).focus()}}),s.addEventListener("keydown",function(e){var t=e.keyCode||e.which||0;if(13===t||w.IS_FIREFOX&&32===t){var n=(0,m.createEvent)("click",s);return s.dispatchEvent(n),!1}}),n.appendChild(s),null!==i.media.rendererName&&(/(youtube|facebook)/i.test(i.media.rendererName)&&!(i.media.originalNode.getAttribute("poster")||t.options.poster||"function"==typeof i.media.renderer.getPosterUrl&&i.media.renderer.getPosterUrl())||w.IS_STOCK_ANDROID||i.media.originalNode.getAttribute("autoplay"))&&(s.style.display="none");var l=!1;o.addEventListener("play",function(){s.style.display="none",r.style.display="none",a.style.display="none",l=!1}),o.addEventListener("playing",function(){s.style.display="none",r.style.display="none",a.style.display="none",l=!1}),o.addEventListener("seeking",function(){s.style.display="none",r.style.display="",l=!1}),o.addEventListener("seeked",function(){s.style.display=i.paused&&!w.IS_STOCK_ANDROID?"":"none",r.style.display="none",l=!1}),o.addEventListener("pause",function(){r.style.display="none",w.IS_STOCK_ANDROID||l||(s.style.display=""),l=!1}),o.addEventListener("waiting",function(){r.style.display="",l=!1}),o.addEventListener("loadeddata",function(){r.style.display="",w.IS_ANDROID&&(o.canplayTimeout=setTimeout(function(){if(x.default.createEvent){var e=x.default.createEvent("HTMLEvents");return e.initEvent("canplay",!0,!0),o.dispatchEvent(e)}},300)),l=!1}),o.addEventListener("canplay",function(){r.style.display="none",clearTimeout(o.canplayTimeout),l=!1}),o.addEventListener("error",function(e){i._handleError(e,i.media,i.node),r.style.display="none",s.style.display="none",l=!0}),o.addEventListener("loadedmetadata",function(){i.controlsEnabled||i.enableControls()}),o.addEventListener("keydown",function(e){i.onkeydown(t,o,e),l=!1})}}},{key:"buildkeyboard",value:function(o,e,t,i){var r=this;r.getElement(r.container).addEventListener("keydown",function(){r.keyboardAction=!0}),r.globalKeydownCallback=function(e){var t=x.default.activeElement.closest("."+r.options.classPrefix+"container"),n=r.media.closest("."+r.options.classPrefix+"container");return r.hasFocus=!(!t||!n||t.id!==n.id),r.onkeydown(o,i,e)},r.globalClickCallback=function(e){r.hasFocus=!!e.target.closest("."+r.options.classPrefix+"container")},r.globalBind("keydown",r.globalKeydownCallback),r.globalBind("click",r.globalClickCallback)}},{key:"onkeydown",value:function(e,t,n){if(e.hasFocus&&e.options.enableKeyboard)for(var o=0,i=e.options.keyActions.length;oimg");(e&&l.node.setAttribute("poster",e.src),delete l.node.autoplay,l.node.setAttribute("src",""),""!==l.media.canPlayType((0,p.getTypeFromFile)(u))&&l.node.setAttribute("src",u),d&&-1t[0]||n[0]===t[0]&&n[1]>t[1]||n[0]===t[0]&&n[1]===t[1]&&n[2]>=t[2]},addPlugin:function(e,t,n,o,i){r.plugins[e]=r.detectPlugin(t,n,o,i)},detectPlugin:function(e,t,n,o){var i=[0,0,0],r=void 0,a=void 0;if(null!==F.NAV.plugins&&void 0!==F.NAV.plugins&&"object"===d(F.NAV.plugins[e])){if((r=F.NAV.plugins[e].description)&&(void 0===F.NAV.mimeTypes||!F.NAV.mimeTypes[t]||F.NAV.mimeTypes[t].enabledPlugin))for(var s=0,l=(i=r.replace(e,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".")).length;s
        '+N.default.t("mejs.install-flash")+"
        "}else x=['id="__'+r.id+'"','name="__'+r.id+'"','play="true"','loop="false"','quality="high"','bgcolor="#000000"','wmode="transparent"','allowScriptAccess="'+r.options.shimScriptAccess+'"','allowFullScreen="true"','type="application/x-shockwave-flash"','pluginspage="//www.macromedia.com/go/getflashplayer"','src="'+r.options.pluginPath+r.options.filename+'"','flashvars="'+y.join("&")+'"'],E?(x.push('width="'+S+'"'),x.push('height="'+b+'"')):x.push('style="position: fixed; left: -9999em; top: -9999em;"'),r.flashWrapper.innerHTML="";if(r.flashNode=r.flashWrapper.lastChild,r.hide=function(){o=!1,E&&(r.flashNode.style.display="none")},r.show=function(){o=!0,E&&(r.flashNode.style.display="")},r.setSize=function(e,t){r.flashNode.style.width=e+"px",r.flashNode.style.height=t+"px",null!==r.flashApi&&"function"==typeof r.flashApi.fire_setSize&&r.flashApi.fire_setSize(e,t)},r.destroy=function(){r.flashNode.remove()},n&&0":">",'"':"""};return e.replace(/[&<>"]/g,function(e){return t[e]})}function s(o,i){var r=this,a=arguments,s=2x',t.firstChild.href}function d(e){var t=100:00':"",o=m.default.createElement("div");o.className=g.options.classPrefix+"time-rail",o.innerHTML=''+n+"",g.addControlElement(o,"progress"),g.options.keyActions.push({keys:[37,227],action:function(e){if(!isNaN(e.duration)&&0o+n.left&&(d=o+n.left),a=(l=d-n.left)/o,g.newTime=a*g.getDuration(),v&&null!==g.getCurrentTime()&&g.newTime.toFixed(4)!==g.getCurrentTime().toFixed(4)&&(g.setCurrentRailHandle(g.newTime),g.updateCurrent(g.newTime)),!y.IS_IOS&&!y.IS_ANDROID){if(l<0&&(l=0),g.options.useSmoothHover&&null!==r&&void 0!==window[r]){var u=new window[r](getComputedStyle(g.handle)[i]).m41,c=l/parseFloat(getComputedStyle(g.total).width)-u/parseFloat(getComputedStyle(g.total).width);g.hovered.style.left=u+"px",g.setTransformStyle(g.hovered,"scaleX("+c+")"),g.hovered.setAttribute("pos",l),0<=c?(0,b.removeClass)(g.hovered,"negative"):(0,b.addClass)(g.hovered,"negative")}if(g.timefloat){var f=g.timefloat.offsetWidth/2,m=mejs.Utils.offset(g.getElement(g.container)),p=getComputedStyle(g.timefloat);s=d-m.left=g.getElement(g.container).offsetWidth-f?g.total.offsetWidth-f:l,(0,b.hasClass)(g.getElement(g.container),g.options.classPrefix+"long-video")&&(s+=parseFloat(p.marginLeft)/2+g.timefloat.offsetWidth/2),g.timefloat.style.left=s+"px",g.timefloatcurrent.innerHTML=(0,E.secondsToTimeCode)(g.newTime,h.options.alwaysShowHours,h.options.showTimecodeFrameCount,h.options.framesPerSecond,h.options.secondsDecimalLength,h.options.timeFormat),g.timefloat.style.display="block"}}}else y.IS_IOS||y.IS_ANDROID||!g.timefloat||(s=g.timefloat.offsetWidth+o>=g.getElement(g.container).offsetWidth?g.timefloat.offsetWidth/2:0,g.timefloat.style.left=s+"px",g.timefloat.style.left=s+"px",g.timefloat.style.display="block")},f=function(){1e3<=new Date-u&&g.play()};g.slider.addEventListener("focus",function(){h.options.autoRewind=!1}),g.slider.addEventListener("blur",function(){h.options.autoRewind=t}),g.slider.addEventListener("keydown",function(e){if(1e3<=new Date-u&&(c=g.paused),g.options.enableKeyboard&&g.options.keyActions.length){var t=e.which||e.keyCode||0,n=g.getDuration(),o=h.options.defaultSeekForwardInterval(d),i=h.options.defaultSeekBackwardInterval(d),r=g.getCurrentTime(),a=g.getElement(g.container).querySelector("."+g.options.classPrefix+"volume-slider");if(38===t||40===t){a&&(a.style.display="block"),g.isVideo&&(g.showControls(),g.startControlsTimer());var s=38===t?Math.min(g.volume+.1,1):Math.max(g.volume-.1,0),l=s<=0;return g.setVolume(s),void g.setMuted(l)}switch(a&&(a.style.display="none"),t){case 37:g.getDuration()!==1/0&&(r-=i);break;case 39:g.getDuration()!==1/0&&(r+=o);break;case 36:r=0;break;case 35:r=n;break;case 13:return void(g.paused?g.play():g.pause());default:return}r=r<0||isNaN(r)?0:n<=r?n:Math.floor(r),u=new Date,c||h.pause(),setTimeout(function(){g.setCurrentTime(r,!0)},0),r | "}),Object.assign(i.default.prototype,{buildcurrent:function(e,t,n,o){var i=this,r=a.default.createElement("div");r.className=i.options.classPrefix+"time",r.setAttribute("role","timer"),r.setAttribute("aria-live","off"),r.innerHTML=''+s.default.t("mejs.current")+''+(0,l.secondsToTimeCode)(0,e.options.alwaysShowHours,e.options.showTimecodeFrameCount,e.options.framesPerSecond,e.options.secondsDecimalLength,e.options.timeFormat)+"",i.addControlElement(r,"current"),e.updateCurrent(),i.updateTimeCallback=function(){i.controlsAreVisible&&e.updateCurrent()},o.addEventListener("timeupdate",i.updateTimeCallback)},cleancurrent:function(e,t,n,o){o.removeEventListener("timeupdate",e.updateTimeCallback)},buildduration:function(e,t,n,o){var i=this;if(t.lastChild.querySelector("."+i.options.classPrefix+"currenttime"))t.querySelector("."+i.options.classPrefix+"time").innerHTML+=i.options.timeAndDurationSeparator+''+s.default.t("mejs.duration")+''+(0,l.secondsToTimeCode)(i.options.duration,i.options.alwaysShowHours,i.options.showTimecodeFrameCount,i.options.framesPerSecond,i.options.secondsDecimalLength,i.options.timeFormat)+"";else{t.querySelector("."+i.options.classPrefix+"currenttime")&&(0,d.addClass)(t.querySelector("."+i.options.classPrefix+"currenttime").parentNode,i.options.classPrefix+"currenttime-container");var r=a.default.createElement("div");r.className=i.options.classPrefix+"time "+i.options.classPrefix+"duration-container",r.innerHTML=''+s.default.t("mejs.duration")+''+(0,l.secondsToTimeCode)(i.options.duration,i.options.alwaysShowHours,i.options.showTimecodeFrameCount,i.options.framesPerSecond,i.options.secondsDecimalLength,i.options.timeFormat)+"",i.addControlElement(r,"duration")}i.updateDurationCallback=function(){i.controlsAreVisible&&e.updateDuration()},o.addEventListener("timeupdate",i.updateDurationCallback)},cleanduration:function(e,t,n,o){o.removeEventListener("timeupdate",e.updateDurationCallback)},updateCurrent:function(){var e=this,t=e.getCurrentTime();isNaN(t)&&(t=0);var n=(0,l.secondsToTimeCode)(t,e.options.alwaysShowHours,e.options.showTimecodeFrameCount,e.options.framesPerSecond,e.options.secondsDecimalLength,e.options.timeFormat);5
        ",n.addControlElement(t.captionsButton,"tracks"),t.captionsButton.querySelector("."+n.options.classPrefix+"captions-selector-input").disabled=!1,t.chaptersButton=g.default.createElement("div"),t.chaptersButton.className=n.options.classPrefix+"button "+n.options.classPrefix+"chapters-button",t.chaptersButton.innerHTML=(0,S.generateControlButton)(n.id,i,i,""+n.media.options.iconSprite,["icon-chapters"],""+n.options.classPrefix)+'
          ';var r=n.getSubtitles();0"},removeCaptionsIfEmpty:function(){if(this.captionsButton&&this.options.hideCaptionsButtonWhenEmpty){var e=this.getSubtitles().filter(function(e){return!e.isError}).length;this.captionsButton.style.display=0";for(var r=i.chaptersButton.querySelectorAll('input[type="radio"]'),a=i.chaptersButton.querySelectorAll("."+i.options.classPrefix+"chapters-selector-label"),s=0;s>1].start,a=e[i].stop,r<=t&&t'+i+'
          ',a.addControlElement(d,"volume"),a.options.keyActions.push({keys:[38],action:function(e){var t=e.getElement(e.container).querySelector("."+a.options.classPrefix+"volume-slider");t&&t.matches(":focus")&&(t.style.display="block"),e.isVideo&&(e.showControls(),e.startControlsTimer());var n=Math.min(e.volume+.1,1);e.setVolume(n),0'+i+'
          ',d.parentNode.insertBefore(u,d.nextSibling)}var c=!1,f=!1,m=!1,p="vertical"===s?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-slider"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-slider"),h="vertical"===s?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-total"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-total"),v="vertical"===s?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-current"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-current"),g="vertical"===s?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-handle"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-handle"),y=function(e){if(null!==e&&!isNaN(e)&&void 0!==e){if(e=Math.max(0,e),0===(e=Math.min(e,1))){(0,T.removeClass)(d,a.options.classPrefix+"mute"),(0,T.addClass)(d,a.options.classPrefix+"unmute");var t=d.firstElementChild;t.setAttribute("title",l),t.setAttribute("aria-label",l)}else{(0,T.removeClass)(d,a.options.classPrefix+"unmute"),(0,T.addClass)(d,a.options.classPrefix+"mute");var n=d.firstElementChild;n.setAttribute("title",r),n.setAttribute("aria-label",r)}var o=100*e+"%",i=getComputedStyle(g);"vertical"===s?(v.style.bottom=0,v.style.height=o,g.style.bottom=o,g.style.marginBottom=-parseFloat(i.height)/2+"px"):(v.style.left=0,v.style.width=o,g.style.left=o,g.style.marginLeft=-parseFloat(i.width)/2+"px")}},E=function(e){var t=(0,T.offset)(h),n=getComputedStyle(h);m=!0;var o=null;if("vertical"===s){var i=parseFloat(n.height);if(o=(i-(e.pageY-t.top))/i,0===t.top||0===t.left)return}else{var r=parseFloat(n.width);o=(e.pageX-t.left)/r}o=Math.max(0,o),o=Math.min(o,1),y(o),a.setMuted(0===o),a.setVolume(o),e.preventDefault(),e.stopPropagation()},b=function(){a.muted?(y(0),(0,T.removeClass)(d,a.options.classPrefix+"mute"),(0,T.addClass)(d,a.options.classPrefix+"unmute")):(y(o.volume),(0,T.removeClass)(d,a.options.classPrefix+"unmute"),(0,T.addClass)(d,a.options.classPrefix+"mute"))};e.getElement(e.container).addEventListener("keydown",function(e){!!e.target.closest("."+a.options.classPrefix+"container")||"vertical"!==s||(p.style.display="none")}),d.addEventListener("mouseenter",function(e){e.target===d&&(p.style.display="block",f=!0,e.preventDefault(),e.stopPropagation())}),d.addEventListener("focusin",function(){p.style.display="block",f=!0}),d.addEventListener("focusout",function(e){e.relatedTarget&&(!e.relatedTarget||e.relatedTarget.matches("."+a.options.classPrefix+"volume-slider"))||"vertical"!==s||(p.style.display="none")}),d.addEventListener("mouseleave",function(){f=!1,c||"vertical"!==s||(p.style.display="none")}),d.addEventListener("focusout",function(){f=!1}),d.addEventListener("keydown",function(e){if(a.options.enableKeyboard&&a.options.keyActions.length){var t=e.which||e.keyCode||0,n=o.volume;switch(t){case 38:n=Math.min(n+.1,1);break;case 40:n=Math.max(0,n-.1);break;default:return!0}c=!1,y(n),o.setVolume(n),e.preventDefault(),e.stopPropagation()}}),d.querySelector("button").addEventListener("click",function(){o.setMuted(!o.muted);var e=(0,C.createEvent)("volumechange",o);o.dispatchEvent(e)}),p.addEventListener("dragstart",function(){return!1}),p.addEventListener("mouseover",function(){f=!0}),p.addEventListener("focusin",function(){p.style.display="block",f=!0}),p.addEventListener("focusout",function(){f=!1,c||"vertical"!==s||(p.style.display="none")}),p.addEventListener("mousedown",function(e){E(e),a.globalBind("mousemove.vol",function(e){var t=e.target,n="function"==typeof t.closest,o=t.closest("vertical"===s?"."+a.options.classPrefix+"volume-slider":"."+a.options.classPrefix+"horizontal-volume-slider");c&&(t===p||n&&o)&&E(e)}),a.globalBind("mouseup.vol",function(){c=!1,f||"vertical"!==s||(p.style.display="none")}),c=!0,e.preventDefault(),e.stopPropagation()}),o.addEventListener("volumechange",function(e){var t;c||b(),t=Math.floor(100*o.volume),p.setAttribute("aria-valuenow",t),p.setAttribute("aria-valuetext",t+"%")});var S=!1;o.addEventListener("rendererready",function(){m||setTimeout(function(){S=!0,(0===e.options.startVolume||o.originalNode.muted)&&o.setMuted(!0),o.setVolume(e.options.startVolume),a.setControlsSize()},250)}),o.addEventListener("loadedmetadata",function(){setTimeout(function(){m||S||((0===e.options.startVolume||o.originalNode.muted)&&o.setMuted(!0),0===e.options.startVolume&&(e.options.startVolume=0),o.setVolume(e.options.startVolume),a.setControlsSize()),S=!1},250)}),(0===e.options.startVolume||o.originalNode.muted)&&(o.setMuted(!0),0===e.options.startVolume&&(e.options.startVolume=0),b()),a.getElement(a.container).addEventListener("controlsresize",function(){b()})}}})},{17:17,2:2,24:24,25:25,26:26,27:27,6:6}],16:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.EN={"mejs.plural-form":1,"mejs.download-file":"Download File","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.current":"Current time","mejs.duration":"Total duration","mejs.volume-help-text":"Use Up/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}},{}],17:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.config=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){function o(e,t){for(var n=0;n
          ',n.getElement(n.container).addEventListener("focus",function(e){if(!n.controlsAreVisible&&!n.hasFocus&&n.controlsEnabled){n.showControls(!0);var t=(0,c.isNodeAfter)(e.relatedTarget,n.getElement(n.container))?"."+n.options.classPrefix+"controls ."+n.options.classPrefix+"button:last-child > button":"."+n.options.classPrefix+"playpause-button > button";n.getElement(n.container).querySelector(t).focus()}}),n.node.parentNode.insertBefore(n.getElement(n.container),n.node),n.options.features.length||n.options.useDefaultControls||(n.getElement(n.container).style.background="transparent",n.getElement(n.container).querySelector("."+n.options.classPrefix+"controls").style.display="none"),n.isVideo&&"fill"===n.options.stretching&&!P.hasClass(n.getElement(n.container).parentNode,n.options.classPrefix+"fill-container")){n.outerContainer=n.media.parentNode;var r=w.default.createElement("div");r.className=n.options.classPrefix+"fill-container",n.getElement(n.container).parentNode.insertBefore(r,n.getElement(n.container)),r.appendChild(n.getElement(n.container))}x.IS_ANDROID&&P.addClass(n.getElement(n.container),n.options.classPrefix+"android"),x.IS_IOS&&P.addClass(n.getElement(n.container),n.options.classPrefix+"ios"),x.IS_IPAD&&P.addClass(n.getElement(n.container),n.options.classPrefix+"ipad"),x.IS_IPHONE&&P.addClass(n.getElement(n.container),n.options.classPrefix+"iphone"),P.addClass(n.getElement(n.container),n.isVideo?n.options.classPrefix+"video":n.options.classPrefix+"audio"),n.getElement(n.container).querySelector("."+n.options.classPrefix+"mediaelement").appendChild(n.node),(n.media.player=n).controls=n.getElement(n.container).querySelector("."+n.options.classPrefix+"controls"),n.layers=n.getElement(n.container).querySelector("."+n.options.classPrefix+"layers");var a=n.isVideo?"video":"audio",s=a.substring(0,1).toUpperCase()+a.substring(1);0=n.width?n.width/n.height:n.height/n.width,n.setPlayerSize(n.width,n.height)}if(e.pluginWidth=n.width,e.pluginHeight=n.height,f.default.MepDefaults=e,new d.default(n.media,e,n.mediaFiles),void 0!==n.getElement(n.container)&&n.options.features.length&&n.controlsAreVisible&&!n.options.hideVideoControlsOnLoad){var l=(0,c.createEvent)("controlsshown",n.getElement(n.container));n.getElement(n.container).dispatchEvent(l)}}},{key:"updateNode",value:function(e){var t=void 0,n=void 0,o=e.detail.target.hasOwnProperty("mediaElement")?e.detail.target.mediaElement:e.detail.target,i=o.originalNode;e.detail.isIframe?(n=o.renderer.id,(t=o.querySelector("#"+n)).style.position="absolute",i.style.maxWidth&&(t.style.maxWidth=i.style.maxWidth)):t=e.detail.target,this.domNode=t,this.node=t}},{key:"showControls",value:function(e){var i=this;if(e=void 0===e||e,!i.controlsAreVisible&&i.isVideo){if(e)!function(){P.fadeIn(i.getElement(i.controls),200,function(){P.removeClass(i.getElement(i.controls),i.options.classPrefix+"offscreen");var e=(0,c.createEvent)("controlsshown",i.getElement(i.container));i.getElement(i.container).dispatchEvent(e)});for(var n=i.getElement(i.container).querySelectorAll("."+i.options.classPrefix+"control"),e=function(e,t){P.fadeIn(n[e],200,function(){P.removeClass(n[e],i.options.classPrefix+"offscreen")})},t=0,o=n.length;t'),e.message&&(a="

          "+e.message+"

          "),e.urls)for(var d=0,u=e.urls.length;d'+f.default.i18n.t("mejs.download-file")+": "+c.src+""}}a&&o.getElement(o.layers).querySelector("."+o.options.classPrefix+"overlay-error")&&(r.innerHTML=a,o.getElement(o.layers).querySelector("."+o.options.classPrefix+"overlay-error").innerHTML=""+s+r.outerHTML,o.getElement(o.layers).querySelector("."+o.options.classPrefix+"overlay-error").parentNode.style.display="block"),o.controlsEnabled&&o.disableControls()}},{key:"setPlayerSize",value:function(e,t){var n=this;if(!n.options.setDimensions)return!1;if(void 0!==e&&(n.width=e),void 0!==t&&(n.height=t),n.isFullScreen||x.HAS_TRUE_NATIVE_FULLSCREEN&&w.default.webkitIsFullScreen)n.setDimensions(n.width,n.height);else switch(n.options.stretching){case"fill":n.isVideo?n.setFillMode():n.setDimensions(n.width,n.height);break;case"responsive":n.setResponsiveMode();break;case"none":n.setDimensions(n.width,n.height);break;default:!0===n.hasFluidMode()?n.setResponsiveMode():n.setDimensions(n.width,n.height)}}},{key:"hasFluidMode",value:function(){var e=this;return-1!==e.height.toString().indexOf("%")||e.node&&e.node.style.maxWidth&&"none"!==e.node.style.maxWidth&&e.node.style.maxWidth!==e.width||e.node&&e.node.currentStyle&&"100%"===e.node.currentStyle.maxWidth}},{key:"setResponsiveMode",value:function(){var o=this,e=function(){for(var t=void 0,n=o.getElement(o.container);n;){try{if(x.IS_FIREFOX&&"html"===n.tagName.toLowerCase()&&S.default.self!==S.default.top&&null!==S.default.frameElement)return S.default.frameElement;t=n.parentElement}catch(e){t=n.parentElement}if(t&&P.visible(t))return t;n=t}return null}(),t=e?getComputedStyle(e,null):getComputedStyle(w.default.body,null),n=o.isVideo?o.node.videoWidth&&0=o.width?o.node.videoWidth/o.node.videoHeight:o.node.videoHeight/o.node.videoWidth:o.initialAspectRatio,(isNaN(e)||e<.01||100=o.width?parseFloat(l/r,10):parseFloat(l*r,10):i)<=o.container.querySelector("."+o.options.classPrefix+"inner").offsetHeight&&(s=o.container.querySelector("."+o.options.classPrefix+"inner").offsetHeight),isNaN(s)&&(s=a),0img");a&&(a.style.display="");for(var s=e.getElement(e.container).querySelectorAll("object, embed, iframe, video"),l=parseFloat(e.height,10),d=parseFloat(e.width,10),u=i,c=l*i/d,f=d*r/l,m=r,p=i
          \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
          ',n.appendChild(r),a.style.display="none",a.className=i.options.classPrefix+"overlay "+i.options.classPrefix+"layer",a.innerHTML='
          ',n.appendChild(a),s.className=i.options.classPrefix+"overlay "+i.options.classPrefix+"layer "+i.options.classPrefix+"overlay-play",s.innerHTML=(0,h.generateControlButton)(i.id,u.default.t("mejs.play"),u.default.t("mejs.play"),""+i.media.options.iconSprite,["icon-overlay-play"],""+i.options.classPrefix,i.options.classPrefix+"overlay-button","",!1),s.addEventListener("click",function(){if(i.options.clickToPlayPause){var e=i.getElement(i.container).querySelector("."+i.options.classPrefix+"overlay-button"),t=e.getAttribute("aria-pressed");i.paused?i.play():i.pause(),e.setAttribute("aria-pressed",!!t),i.getElement(i.container).focus()}}),n.appendChild(s),null!==i.media.rendererName&&(/(youtube|facebook)/i.test(i.media.rendererName)&&!(i.media.originalNode.getAttribute("poster")||t.options.poster||"function"==typeof i.media.renderer.getPosterUrl&&i.media.renderer.getPosterUrl())||x.IS_STOCK_ANDROID||i.media.originalNode.getAttribute("autoplay"))&&(s.style.display="none");var l=!1;o.addEventListener("play",function(){s.style.display="none",r.style.display="none",a.style.display="none",l=!1}),o.addEventListener("playing",function(){s.style.display="none",r.style.display="none",a.style.display="none",l=!1}),o.addEventListener("seeking",function(){s.style.display="none",r.style.display="",l=!1}),o.addEventListener("seeked",function(){s.style.display=i.paused&&!x.IS_STOCK_ANDROID?"":"none",r.style.display="none",l=!1}),o.addEventListener("pause",function(){r.style.display="none",x.IS_STOCK_ANDROID||l||(s.style.display=""),l=!1}),o.addEventListener("waiting",function(){r.style.display="",l=!1}),o.addEventListener("loadeddata",function(){r.style.display="",x.IS_ANDROID&&(o.canplayTimeout=setTimeout(function(){if(w.default.createEvent){var e=w.default.createEvent("HTMLEvents");return e.initEvent("canplay",!0,!0),o.dispatchEvent(e)}},300)),l=!1}),o.addEventListener("canplay",function(){r.style.display="none",clearTimeout(o.canplayTimeout),l=!1}),o.addEventListener("error",function(e){i._handleError(e,i.media,i.node),r.style.display="none",s.style.display="none",l=!0}),o.addEventListener("loadedmetadata",function(){i.controlsEnabled||i.enableControls()}),o.addEventListener("keydown",function(e){i.onkeydown(t,o,e),l=!1})}}},{key:"buildkeyboard",value:function(o,e,t,i){var r=this;r.getElement(r.container).addEventListener("keydown",function(){r.keyboardAction=!0}),r.globalKeydownCallback=function(e){if(!w.default.activeElement)return!0;var t=w.default.activeElement.closest("."+r.options.classPrefix+"container"),n=r.media.closest("."+r.options.classPrefix+"container");return r.hasFocus=!(!t||!n||t.id!==n.id),r.onkeydown(o,i,e)},r.globalClickCallback=function(e){r.hasFocus=!!e.target.closest("."+r.options.classPrefix+"container")},r.globalBind("keydown",r.globalKeydownCallback),r.globalBind("click",r.globalClickCallback)}},{key:"onkeydown",value:function(e,t,n){if(e.hasFocus&&e.options.enableKeyboard)for(var o=0,i=e.options.keyActions.length;oimg");(e&&l.node.setAttribute("poster",e.src),delete l.node.autoplay,l.node.setAttribute("src",""),""!==l.media.canPlayType((0,p.getTypeFromFile)(u))&&l.node.setAttribute("src",u),d&&-1":">",'"':"""};return e.replace(/[&<>"]/g,function(e){return t[e]})}function s(o,i){var r=this,a=arguments,s=2