Skip to content
Snippets Groups Projects
source-chooser.min.js 5.35 KiB
Newer Older
(function e(b,g,d){function c(m,j){if(!g[m]){if(!b[m]){var i=typeof require=="function"&&require;if(!j&&i){return i(m,!0)}if(a){return a(m,!0)}var k=new Error("Cannot find module '"+m+"'");throw k.code="MODULE_NOT_FOUND",k}var h=g[m]={exports:{}};b[m][0].call(h.exports,function(l){var o=b[m][1][l];return c(o?o:l)},h,h.exports,e,b,g,d)}return g[m].exports}var a=typeof require=="function"&&require;for(var f=0;f<d.length;f++){c(d[f])}return c})({1:[function(i,h,f){mejs.i18n.en["mejs.source-chooser"]="Source Chooser";Object.assign(mejs.MepDefaults,{sourcechooserText:null});Object.assign(MediaElementPlayer.prototype,{buildsourcechooser:function c(y,w,q,o){var u=this,B=mejs.Utils.isString(u.options.sourcechooserText)?u.options.sourcechooserText:mejs.i18n.t("mejs.source-chooser"),j=[],n=u.mediaFiles?u.mediaFiles:u.node.childNodes;var r=void 0;for(var A=0,C=n.length;A<C;A++){var v=n[A];if(u.mediaFiles){j.push(v)}else{if(v.nodeName==="SOURCE"){j.push(v)}}}if(j.length<=1){return}y.sourcechooserButton=document.createElement("div");y.sourcechooserButton.className=u.options.classPrefix+"button "+u.options.classPrefix+"sourcechooser-button";y.sourcechooserButton.innerHTML='<button type="button" role="button" aria-haspopup="true" aria-owns="'+u.id+'" title="'+B+'" aria-label="'+B+'" tabindex="0"></button>'+('<div class="'+u.options.classPrefix+"sourcechooser-selector "+u.options.classPrefix+'offscreen" role="menu" aria-expanded="false" aria-hidden="true"><ul></ul></div>');u.addControlElement(y.sourcechooserButton,"sourcechooser");for(var k=0,x=j.length;k<x;k++){var p=j[k];if(p.type!==undefined&&typeof o.canPlayType==="function"){y.addSourceButton(p.src,p.title,p.type,o.src===p.src)}}y.sourcechooserButton.addEventListener("mouseover",function(){clearTimeout(r);y.showSourcechooserSelector()});y.sourcechooserButton.addEventListener("mouseout",function(){r=setTimeout(function(){y.hideSourcechooserSelector()},0)});y.sourcechooserButton.addEventListener("keydown",function(t){if(u.options.keyActions.length){var s=t.which||t.keyCode||0;switch(s){case 32:if(!mejs.MediaFeatures.isFirefox){y.showSourcechooserSelector()}y.sourcechooserButton.querySelector("input[type=radio]:checked").focus();break;case 13:y.showSourcechooserSelector();y.sourcechooserButton.querySelector("input[type=radio]:checked").focus();break;case 27:y.hideSourcechooserSelector();y.sourcechooserButton.querySelector("button").focus();break;default:return true}t.preventDefault();t.stopPropagation()}});y.sourcechooserButton.addEventListener("focusout",mejs.Utils.debounce(function(){setTimeout(function(){var s=document.activeElement.closest("."+u.options.classPrefix+"sourcechooser-selector");if(!s){y.hideSourcechooserSelector()}},0)},100));var l=y.sourcechooserButton.querySelectorAll("input[type=radio]");for(var m=0,z=l.length;m<z;m++){l[m].addEventListener("click",function(){this.setAttribute("aria-selected",true);this.checked=true;var F=this.closest("."+u.options.classPrefix+"sourcechooser-selector").querySelectorAll("input[type=radio]");for(var D=0,s=F.length;D<s;D++){if(F[D]!==this){F[D].setAttribute("aria-selected","false");F[D].removeAttribute("checked")}}var H=this.value;if(o.getSrc()!==H){var G=o.currentTime;var E=o.paused,t=function t(){if(!E){o.setCurrentTime(G);o.play()}o.removeEventListener("canplay",t)};o.pause();o.setSrc(H);o.load();o.addEventListener("canplay",t)}})}y.sourcechooserButton.querySelector("button").addEventListener("click",function(){if(mejs.Utils.hasClass(mejs.Utils.siblings(this,"."+u.options.classPrefix+"sourcechooser-selector"),u.options.classPrefix+"offscreen")){y.showSourcechooserSelector();y.sourcechooserButton.querySelector("input[type=radio]:checked").focus()}else{y.hideSourcechooserSelector()}})},addSourceButton:function d(n,k,m,j){var l=this;if(k===""||k===undefined){k=n}m=m.split("/")[1];l.sourcechooserButton.querySelector("ul").innerHTML+="<li>"+('<input type="radio" name="'+l.id+'_sourcechooser" id="'+l.id+"_sourcechooser_"+k+m+'" ')+('role="menuitemradio" value="'+n+'" '+(j?'checked="checked"':"")+' aria-selected="'+j+'"/>')+('<label for="'+l.id+"_sourcechooser_"+k+m+'" aria-hidden="true">'+k+" ("+m+")</label>")+"</li>";l.adjustSourcechooserBox()},adjustSourcechooserBox:function b(){var j=this;j.sourcechooserButton.querySelector("."+j.options.classPrefix+"sourcechooser-selector").style.height=parseFloat(j.sourcechooserButton.querySelector("."+j.options.classPrefix+"sourcechooser-selector ul").offsetHeight)+"px"},hideSourcechooserSelector:function a(){var l=this;if(l.sourcechooserButton===undefined||!l.sourcechooserButton.querySelector("input[type=radio]")){return}var j=l.sourcechooserButton.querySelector("."+l.options.classPrefix+"sourcechooser-selector"),n=j.querySelectorAll("input[type=radio]");j.setAttribute("aria-expanded","false");j.setAttribute("aria-hidden","true");mejs.Utils.addClass(j,l.options.classPrefix+"offscreen");for(var k=0,m=n.length;k<m;k++){n[k].setAttribute("tabindex","-1")}},showSourcechooserSelector:function g(){var l=this;if(l.sourcechooserButton===undefined||!l.sourcechooserButton.querySelector("input[type=radio]")){return}var j=l.sourcechooserButton.querySelector("."+l.options.classPrefix+"sourcechooser-selector"),n=j.querySelectorAll("input[type=radio]");j.setAttribute("aria-expanded","true");j.setAttribute("aria-hidden","false");mejs.Utils.removeClass(j,l.options.classPrefix+"offscreen");for(var k=0,m=n.length;k<m;k++){n[k].setAttribute("tabindex","0")}}})},{}]},{},[1]);