@flowplayer/player
Version:
video player for the future
2 lines (1 loc) • 1.87 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.context_menu=t())}(this,function(){"use strict";const e="contextmenu",t=document.createElement;function n(e,n){const o=n.href?function(e){const n=t("a");return n.href=e,n}(n.href):t("span"),s=n.onclick;return n.class&&(o.className=n.class),n.text&&(o.innerText=n.text),s&&o.addEventListener("click",function(t){s(t,e)}),o}var o;const s=".fp-active",c=[{text:"Flowplayer © "+(new Date).getFullYear()},{href:"https://flowplayer.com",text:"About this player"},{href:"https://flowplayer.com/license/",text:"GPL based license"}];let i=!1;const l=e=>{e.classList.remove(s),i=!1};document.addEventListener("click",e=>{2!=e.button&&0!=i&&l(i)}),document.addEventListener("keyup",function(){i&&l(i)});const r=((o=class ContextMenu{init(t,o,l){const r=t.context_menu||c,u=document.createElement("div");u.className=".fp-context-menu .fp-menu",u.append(...r.map(e=>n(l,e)));const f=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(l,"flowplayer-ui");f&&f.addEventListener(e,function(t){if(!u.parentNode)return;t.preventDefault(),l.emit(e);const n=u.getBoundingClientRect();u.style.left=t.clientX-window.scrollX-n.left+2+"px",u.style.right=t.clientY+window.scrollY-n.top-5+"px",u.classList.contains(s)||(u.classList.contains(s),i=u)})}}).pluginName="context-menu",o);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const n=e.flowplayer;return"function"==typeof n?(n(t),t):(Array.isArray(n.extensions)||(n.extensions=[]),~n.extensions.indexOf(t)||n.extensions.push(t),t)}(window,r)});