@flowplayer/player 3.31.1-rc → 3.31.1-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core.js +1 -1
- package/default.js +1 -1
- package/embed.js +2 -2
- package/flowplayer.css +1 -1
- package/package.json +1 -1
- package/plugins/ads.js +1 -1
- package/plugins/analytics.js +1 -1
- package/plugins/asel.js +1 -1
- package/plugins/ovp.js +1 -1
- package/plugins/preview.js +1 -1
- package/plugins/qsel.js +1 -1
- package/plugins/rts.js +1 -1
- package/plugins/share.js +1 -1
- package/plugins/speed.js +1 -1
- package/plugins/ssai.js +1 -1
- package/plugins/subtitles.js +1 -1
- package/plugins/vtsel.js +1 -1
package/plugins/share.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!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.share=t())}(this,function(){"use strict";const e="click";const t={name:"fp-facebook"},n={name:"fp-link"},s={name:"fp-share"},i={name:"fp-embed"},o={name:"fp-twitter"};function r(e,t,n){const s=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;s.length;){if(null==e)return n;const t=s.shift();if("string"!=typeof t)return n;e=e[t]}return null==e?n:e}const l="webshare-enabled";function a(){try{return(document.querySelector("meta[name='description']")||{content:""}).content}catch(e){return""}}function c(e){if("string"==typeof e.link)return e.link;const t=document.querySelector("link[rel=canonical]");return t?t.href:window.location.toString()}class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class FlowplayerIcon extends FlowplayerComponent{constructor(e,t){super(e),this.classList.add("fp-icon",t.name),t.title&&this.setAttribute("title",t.title),t.title&&this.setAttribute("aria-label",t.title),t.translation_key&&this.setAttribute("aria-label",e.i18n(t.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}const u=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const s=window.customElements.get(t);if(!s)throw new Error(`no default flowplayer component with the name ${t} exists`);const i=window.customElements.get(n);return"function"!=typeof i?s:i})(e._customElements,t))(e),d=(e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)},m="has-menu-opened",p="fp-menu-container",h="fp-on",f="fp-invis",y="details[open]."+p;class FlowplayerMenu extends FlowplayerComponent{constructor(t){super(t),this.player=t,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=b(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(p),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(e,e=>{if(e.defaultPrevented)return;e.preventDefault();const n=this.menuContainer.open;n||(w(),document.active_menu=this.menuContainer),this.menuContainer.open=!n,t.root.classList.toggle(m,!n),this.summaryEle.setAttribute("aria-expanded",n?"false":"true")}),this.addEventListener("focusin",e=>{const t=e.target;t instanceof HTMLLIElement&&t.setAttribute("aria-selected","true")}),this.addEventListener("focusout",e=>{const t=e.target;t instanceof HTMLLIElement&&t.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(e){if(this.className=e.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=e.id||b()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=u(this.player,e.summaryIcon);t.setAttribute("tabindex",""),this.summaryEle.append(t)}e.menuTitle&&(this.menuTitle.textContent=e.menuTitle),this.menu.classList.toggle("fp-icons",!!e.icons),this.addEventListener(e.options_event,e=>{this.render(e.data)}),e.item_selected_event&&this.addEventListener(e.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(t,n){const s=document.createElement("li");s.setAttribute("role","menuitem"),s.setAttribute("aria-selected","false"),s.setAttribute("tabindex","0"),t.icon&&s.append(t.icon);const i=document.createElement("span");i.textContent=t.text,s.append(i),s.addEventListener(e,()=>{this.select_item(n),"function"==typeof t.onclick&&t.onclick()}),this.olEle.appendChild(s),t.selected&&this.select_item(n)}select_item(e){this.options.forEach((t,n)=>{t.classList.toggle(h,n===e)})}unselect_item(){this.options.forEach(e=>{e.classList.remove(h)})}toggle_visibility(e){this.classList.toggle(f,e),this.menu.style.setProperty("display",e?"none":"flex")}}function w(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const n=e.root.querySelector(y);n&&(n.open=!1,null===(t=n.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(m,!1))})}function b(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function g(e,t,n){const s=function(e,t){const n=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(n,"data",{get:()=>t}),n}(t,n);return e.dispatchEvent(s),e}function E(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}document.addEventListener(e,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(w(),this.active_menu=void 0)}),function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}();const v="flowplayer-share-menu",_="flowplayer-share-icon",x="flowplayer-facebook-icon",A="flowplayer-twitter-icon",L="flowplayer-link-icon",C="flowplayer-embed-icon";var k;const S=((k=class Share{constructor(e){this.umd=e,this.share_options=[],d(e,v,class extends FlowplayerMenu{}),d(this.umd,x,class extends FlowplayerIcon{constructor(e){super(e,t)}}),d(this.umd,A,class extends FlowplayerIcon{constructor(e){super(e,o)}}),d(this.umd,L,class extends FlowplayerIcon{constructor(e){super(e,n)}}),d(this.umd,C,class extends FlowplayerIcon{constructor(e){super(e,i)}}),d(this.umd,_,class extends FlowplayerIcon{constructor(e){super(e,s)}})}init(t,n,s){const i=u(s,v);i instanceof FlowplayerMenu&&i.setMenuAttrs({menuTitle:s.i18n("share.menu_title"),class:"fp-share-menu fp-togglable",summaryIcon:_,icons:!0,options_event:k.events.OPTIONS});const o={prev_config:0,webshare_listener:0};s.on("mount",function(){var e;null===(e=E(s,"flowplayer-header-left-zone"))||void 0===e||e.append(i),i instanceof FlowplayerMenu&&i.menuContainer.addEventListener("toggle",function(){n.classList.toggle("is-share-menu",this.open);const e=E(s,"flowplayer-control");this.open&&(n.classList.contains("is-small")?s.pause():e&&function(e,t){if(!t)return;e.menu.style.maxHeight=t.getBoundingClientRect().top+parseFloat(window.getComputedStyle(t).getPropertyValue("padding"))-e.menuContainer.getBoundingClientRect().bottom+"px"}(i,e))})}),s.on("config",n=>{const d=r(n,"data.share",{});if(!1===d)return i instanceof FlowplayerMenu&&void i.classList.remove(l);if(o.prev_config===d)return;if(o.prev_config=d,i instanceof FlowplayerMenu&&function(){try{return"https:"===window.location.protocol&&"function"==typeof navigator.share}catch(e){return!1}}()&&r(d,"web_share",!0))return function(e){e.classList.add(l)}(i),o.webshare_listener||function(t,n,s){s.webshare_listener=!0,n.addEventListener(e,function(){n.classList.contains(l)&&(n.menuContainer.open=!1,navigator.share({title:r(t,"share.title",document.title),text:r(t,"share.text",a()),url:c(r(t,"share",{}))}).catch(function(){}))})}(t,i,o);this.share_options=[];const m="string"==typeof d.link?d.link:window.location.toString();if(d.iframe){const e="string"==typeof d.iframe?d.iframe:m;this.share_options.push(I(s,i,"share.embed",M.bind(null,e,s),u(s,C)))}d.link&&this.share_options.push(I(s,i,"share.link",O.bind(null,m),u(s,L))),d.facebook&&this.share_options.push(I(s,i,"Facebook",H.bind(null,m),u(s,x))),d.twitter&&this.share_options.push(I(s,i,"Twitter",P.bind(null,m),u(s,A))),g(i,k.events.OPTIONS,this.share_options)})}add_options(e,...t){const n=e.root.querySelector(v);n&&t.forEach(t=>{const s=I(e,n,t.text,t.onclick,t.icon);n.menuOption(s,n.options.length)})}}).pluginName="share",k.events={OPTIONS:"share:options"},k);function I(e,t,n,s,i){return{text:T(e,n),icon:i,onclick:F.bind(null,e,t,s)}}function T(e,t){return 0===t.indexOf("share.")?e.i18n(t):t}function F(e,t,n){t instanceof FlowplayerMenu&&t.unselect_item();const s=n();s.success&&s.message&&e.message&&e.emit(e.message.events.SHOW_MESSAGE,{message:s.message})}function M(e,t){const n=t.videoHeight/t.videoWidth;return O('<div style="position:relative;width:100%;display:inline-block;"><iframe src="__IFRAME_SRC__" allowfullscreen style="border:none;position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top: __RATIO__%;"></div></div>'.replace("__IFRAME_SRC__",encodeURI(e)).replace("__RATIO__",""+100*n))}function O(e){const t=document.createElement("textarea");t.setAttribute("style","position:absolute;opacity:0"),t.value=e;const n=document.body;n.append(t),t.select();const s=document.execCommand("copy");return n.removeChild(t),{success:s,message:s?"<trans share.clipboard_success trans>":"<trans share.clipboard_failure trans>"}}function H(e){return R("https://www.facebook.com/sharer.php?u="+encodeURIComponent(e)),{success:!0}}function P(e){return R("https://twitter.com/intent/tweet?url="+encodeURIComponent(e)),{success:!0}}function R(e){let t;const n=screen.height,s=screen.width,i=Math.round(s/2-275);t=0,n>420&&(t=Math.round(n/2-210)),window.open(e,"sharer","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left="+i+",top="+t)}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,S)});
|
|
1
|
+
!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.share=t())}(this,function(){"use strict";const e="click";const t={name:"fp-facebook"},n={name:"fp-link"},s={name:"fp-share"},i={name:"fp-embed"},o={name:"fp-twitter"};function r(e,t,n){const s=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;s.length;){if(null==e)return n;const t=s.shift();if("string"!=typeof t)return n;e=e[t]}return null==e?n:e}const a="webshare-enabled";function l(){try{return(document.querySelector("meta[name='description']")||{content:""}).content}catch(e){return""}}function c(e){if("string"==typeof e.link)return e.link;const t=document.querySelector("link[rel=canonical]");return t?t.href:window.location.toString()}class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class FlowplayerIcon extends FlowplayerComponent{constructor(e,t){super(e),this.classList.add("fp-icon",t.name),t.title&&this.setAttribute("title",t.title),t.title&&this.setAttribute("aria-label",t.title),t.translation_key&&this.setAttribute("aria-label",e.i18n(t.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}const u=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const s=window.customElements.get(t);if(!s)throw new Error(`no default flowplayer component with the name ${t} exists`);const i=window.customElements.get(n);return"function"!=typeof i?s:i})(e._customElements,t))(e),d=(e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)},m="has-menu-opened",h="fp-menu-container",p="fp-on",f="fp-invis",y="details[open]."+h;class FlowplayerMenu extends FlowplayerComponent{constructor(t){super(t),this.player=t,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=b(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(h),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(e,e=>{if(e.defaultPrevented)return;e.preventDefault();const n=this.menuContainer.open;n||(w(),document.active_menu=this.menuContainer),this.menuContainer.open=!n,t.root.classList.toggle(m,!n),this.summaryEle.setAttribute("aria-expanded",n?"false":"true")}),this.addEventListener("focusin",e=>{e.target;HTMLLIElement}),this.addEventListener("focusout",e=>{e.target;HTMLLIElement}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(e){if(this.className=e.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=e.id||b()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=u(this.player,e.summaryIcon);t.setAttribute("tabindex",""),this.summaryEle.append(t)}e.menuTitle&&(this.menuTitle.textContent=e.menuTitle),this.menu.classList.toggle("fp-icons",!!e.icons),this.addEventListener(e.options_event,e=>{this.render(e.data)}),e.item_selected_event&&this.addEventListener(e.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(t,n){const s=document.createElement("li");s.setAttribute("tabindex","0"),t.icon&&s.append(t.icon);const i=document.createElement("span");i.textContent=t.text,s.append(i),this.olEle.appendChild(s),t.isButton?(s.setAttribute("role","menuitem"),s.addEventListener(e,()=>{"function"==typeof t.onclick&&t.onclick()})):(s.setAttribute("role","menuitemradio"),s.setAttribute("aria-checked","false"),s.addEventListener(e,()=>{this.select_item(n),"function"==typeof t.onclick&&t.onclick()}),t.selected&&this.select_item(n))}select_item(e){var t;if(!(null===(t=this.options[e])||void 0===t?void 0:t.hasAttribute("aria-checked")))throw new Error("Cannot select a button-only item");this.options.forEach((t,n)=>{t.hasAttribute("aria-checked")&&(t.classList.toggle(p,n===e),t.setAttribute("aria-checked",n===e?"true":"false"))})}unselect_item(){this.options.forEach(e=>{e.classList.remove(p),e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked","false")})}toggle_visibility(e){this.classList.toggle(f,e),this.menu.style.setProperty("display",e?"none":"flex")}}function w(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const n=e.root.querySelector(y);n&&(n.open=!1,null===(t=n.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(m,!1))})}function b(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function E(e,t,n){const s=function(e,t){const n=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(n,"data",{get:()=>t}),n}(t,n);return e.dispatchEvent(s),e}function g(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}document.addEventListener(e,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(w(),this.active_menu=void 0)}),function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}();const v="flowplayer-share-menu",_="flowplayer-share-icon",x="flowplayer-facebook-icon",A="flowplayer-twitter-icon",L="flowplayer-link-icon",k="flowplayer-embed-icon";var C;const S=((C=class Share{constructor(e){this.umd=e,this.share_options=[],d(e,v,class extends FlowplayerMenu{}),d(this.umd,x,class extends FlowplayerIcon{constructor(e){super(e,t)}}),d(this.umd,A,class extends FlowplayerIcon{constructor(e){super(e,o)}}),d(this.umd,L,class extends FlowplayerIcon{constructor(e){super(e,n)}}),d(this.umd,k,class extends FlowplayerIcon{constructor(e){super(e,i)}}),d(this.umd,_,class extends FlowplayerIcon{constructor(e){super(e,s)}})}init(t,n,s){const i=u(s,v);i instanceof FlowplayerMenu&&i.setMenuAttrs({menuTitle:s.i18n("share.menu_title"),class:"fp-share-menu fp-togglable",summaryIcon:_,icons:!0,options_event:C.events.OPTIONS});const o={prev_config:0,webshare_listener:0};s.on("mount",function(){var e;null===(e=g(s,"flowplayer-header-left-zone"))||void 0===e||e.append(i),i instanceof FlowplayerMenu&&i.menuContainer.addEventListener("toggle",function(){n.classList.toggle("is-share-menu",this.open);const e=g(s,"flowplayer-control");this.open&&(n.classList.contains("is-small")?s.pause():e&&function(e,t){if(!t)return;e.menu.style.maxHeight=t.getBoundingClientRect().top+parseFloat(window.getComputedStyle(t).getPropertyValue("padding"))-e.menuContainer.getBoundingClientRect().bottom+"px"}(i,e))})}),s.on("config",n=>{const d=r(n,"data.share",{});if(!1===d)return i instanceof FlowplayerMenu&&void i.classList.remove(a);if(o.prev_config===d)return;if(o.prev_config=d,i instanceof FlowplayerMenu&&function(){try{return"https:"===window.location.protocol&&"function"==typeof navigator.share}catch(e){return!1}}()&&r(d,"web_share",!0))return function(e){e.classList.add(a)}(i),o.webshare_listener||function(t,n,s){s.webshare_listener=!0,n.addEventListener(e,function(){n.classList.contains(a)&&(n.menuContainer.open=!1,navigator.share({title:r(t,"share.title",document.title),text:r(t,"share.text",l()),url:c(r(t,"share",{}))}).catch(function(){}))})}(t,i,o);this.share_options=[];const m="string"==typeof d.link?d.link:window.location.toString();if(d.iframe){const e="string"==typeof d.iframe?d.iframe:m;this.share_options.push(I(s,i,"share.embed",M.bind(null,e,s),u(s,k)))}d.link&&this.share_options.push(I(s,i,"share.link",O.bind(null,m),u(s,L))),d.facebook&&this.share_options.push(I(s,i,"Facebook",H.bind(null,m),u(s,x))),d.twitter&&this.share_options.push(I(s,i,"Twitter",P.bind(null,m),u(s,A))),E(i,C.events.OPTIONS,this.share_options)})}add_options(e,...t){const n=e.root.querySelector(v);n&&t.forEach(t=>{const s=I(e,n,t.text,t.onclick,t.icon);n.menuOption(s,n.options.length)})}}).pluginName="share",C.events={OPTIONS:"share:options"},C);function I(e,t,n,s,i){return{text:T(e,n),icon:i,onclick:F.bind(null,e,t,s),isButton:!0}}function T(e,t){return 0===t.indexOf("share.")?e.i18n(t):t}function F(e,t,n){t instanceof FlowplayerMenu&&t.unselect_item();const s=n();s.success&&s.message&&e.message&&e.emit(e.message.events.SHOW_MESSAGE,{message:s.message})}function M(e,t){const n=t.videoHeight/t.videoWidth;return O('<div style="position:relative;width:100%;display:inline-block;"><iframe src="__IFRAME_SRC__" allowfullscreen style="border:none;position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top: __RATIO__%;"></div></div>'.replace("__IFRAME_SRC__",encodeURI(e)).replace("__RATIO__",""+100*n))}function O(e){const t=document.createElement("textarea");t.setAttribute("style","position:absolute;opacity:0"),t.value=e;const n=document.body;n.append(t),t.select();const s=document.execCommand("copy");return n.removeChild(t),{success:s,message:s?"<trans share.clipboard_success trans>":"<trans share.clipboard_failure trans>"}}function H(e){return R("https://www.facebook.com/sharer.php?u="+encodeURIComponent(e)),{success:!0}}function P(e){return R("https://twitter.com/intent/tweet?url="+encodeURIComponent(e)),{success:!0}}function R(e){let t;const n=screen.height,s=screen.width,i=Math.round(s/2-275);t=0,n>420&&(t=Math.round(n/2-210)),window.open(e,"sharer","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left="+i+",top="+t)}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,S)});
|
package/plugins/speed.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!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.speed=t())}(this,function(){"use strict";const e="click";class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const t="has-menu-opened",n=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const s=window.customElements.get(t);if(!s)throw new Error(`no default flowplayer component with the name ${t} exists`);const i=window.customElements.get(n);return"function"!=typeof i?s:i})(e._customElements,t))(e),s="fp-menu-container",i="fp-on",o="fp-invis",l="details[open]."+s;class FlowplayerMenu extends FlowplayerComponent{constructor(n){super(n),this.player=n,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=a(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(s),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(e,e=>{if(e.defaultPrevented)return;e.preventDefault();const s=this.menuContainer.open;s||(r(),document.active_menu=this.menuContainer),this.menuContainer.open=!s,n.root.classList.toggle(t,!s),this.summaryEle.setAttribute("aria-expanded",s?"false":"true")}),this.addEventListener("focusin",e=>{
|
|
1
|
+
!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.speed=t())}(this,function(){"use strict";const e="click";class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const t="has-menu-opened",n=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const s=window.customElements.get(t);if(!s)throw new Error(`no default flowplayer component with the name ${t} exists`);const i=window.customElements.get(n);return"function"!=typeof i?s:i})(e._customElements,t))(e),s="fp-menu-container",i="fp-on",o="fp-invis",l="details[open]."+s;class FlowplayerMenu extends FlowplayerComponent{constructor(n){super(n),this.player=n,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=a(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(s),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(e,e=>{if(e.defaultPrevented)return;e.preventDefault();const s=this.menuContainer.open;s||(r(),document.active_menu=this.menuContainer),this.menuContainer.open=!s,n.root.classList.toggle(t,!s),this.summaryEle.setAttribute("aria-expanded",s?"false":"true")}),this.addEventListener("focusin",e=>{e.target;HTMLLIElement}),this.addEventListener("focusout",e=>{e.target;HTMLLIElement}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(e){if(this.className=e.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=e.id||a()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=n(this.player,e.summaryIcon);t.setAttribute("tabindex",""),this.summaryEle.append(t)}e.menuTitle&&(this.menuTitle.textContent=e.menuTitle),this.menu.classList.toggle("fp-icons",!!e.icons),this.addEventListener(e.options_event,e=>{this.render(e.data)}),e.item_selected_event&&this.addEventListener(e.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(t,n){const s=document.createElement("li");s.setAttribute("tabindex","0"),t.icon&&s.append(t.icon);const i=document.createElement("span");i.textContent=t.text,s.append(i),this.olEle.appendChild(s),t.isButton?(s.setAttribute("role","menuitem"),s.addEventListener(e,()=>{"function"==typeof t.onclick&&t.onclick()})):(s.setAttribute("role","menuitemradio"),s.setAttribute("aria-checked","false"),s.addEventListener(e,()=>{this.select_item(n),"function"==typeof t.onclick&&t.onclick()}),t.selected&&this.select_item(n))}select_item(e){var t;if(!(null===(t=this.options[e])||void 0===t?void 0:t.hasAttribute("aria-checked")))throw new Error("Cannot select a button-only item");this.options.forEach((t,n)=>{t.hasAttribute("aria-checked")&&(t.classList.toggle(i,n===e),t.setAttribute("aria-checked",n===e?"true":"false"))})}unselect_item(){this.options.forEach(e=>{e.classList.remove(i),e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked","false")})}toggle_visibility(e){this.classList.toggle(o,e),this.menu.style.setProperty("display",e?"none":"flex")}}function r(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var n;const s=e.root.querySelector(l);s&&(s.open=!1,null===(n=s.querySelector("summary"))||void 0===n||n.removeAttribute("aria-expanded"),e.root.classList.toggle(t,!1))})}function a(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function u(e,t,n){const s=function(e,t){const n=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(n,"data",{get:()=>t}),n}(t,n);return e.dispatchEvent(s),e}document.addEventListener(e,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(r(),this.active_menu=void 0)}),function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}();const c="flowplayer-speed-menu";var d;const m=((d=class Speed{constructor(e){this.selectedRate=1,((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,c,class extends FlowplayerMenu{})}init(e,t,s){let i;const o=n(s,c);o instanceof FlowplayerMenu&&o.setMenuAttrs({menuTitle:s.i18n("speed.menu_title"),summaryTitle:"1x",class:".fp-speed",options_event:d.events.OPTIONS,item_selected_event:d.events.SWITCH}),s.on("loadstart",()=>this.select_speed(s,this.selectedRate)),s.on("config",()=>{var t;const n=null===(t=e.speed)||void 0===t||t;if(n===i)return;if(i=n,0==n)return this.select_speed(s,1),u(o,d.events.OPTIONS,[]);const l="boolean"!=typeof n&&n.options?n.options:d.DEFAULT_SPEED_OPTIONS,r="boolean"!=typeof n&&n.labels?n.labels:[];Array.isArray(l)&&(u(o,d.events.OPTIONS,Array.from({length:l.length}).map((e,t)=>{const n=l[t];return{text:r[t]||n+"x",onclick:this.select_speed.bind(this,s,n)}})),u(o,d.events.SWITCH,{selected_index:l.findIndex(e=>1===e)}))}),s.on("mount",function(){var e;null===(e=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(s,s.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))||void 0===e||e.append(o)})}select_speed(e,t){var n;if(isNaN(t))return;const s=null===(n=e.root.querySelector(c))||void 0===n?void 0:n.summaryEle;s&&(s.textContent=t+"x"),e.playbackRate=this.selectedRate=t}}).pluginName="speed",d.DEFAULT_SPEED_OPTIONS=[.2,.5,1,2,10],d.events={OPTIONS:"speed:options",SWITCH:"speed:switch"},d);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,m)});
|
package/plugins/ssai.js
CHANGED
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* https://github.com/lancedikson/bowser
|
|
5
5
|
* MIT License | (c) Dustin Diaz 2012-2015
|
|
6
6
|
* MIT License | (c) Denis Demchenko 2015-2019
|
|
7
|
-
*/const F=class Bowser{static getParser(e,t=!1){if("string"!=typeof e)throw new Error("UserAgent should be a string");return new Parser(e,t)}static parse(e){return new Parser(e).getResult()}static get BROWSER_MAP(){return E}static get ENGINE_MAP(){return T}static get OS_MAP(){return _}static get PLATFORMS_MAP(){return P}}.parse(window.navigator.userAgent),{platform:D,os:I,browser:L}=F,B=e=>e&&e.toLowerCase();var q={rnd:Math.random().toString(36).substr(2,32),os:B(I.name+(I.versionName?` ${I.versionName}`:"")),device:B(D.type),browser:B(L.name),browser_version:(L&&L.version?L.version:"unknown").split(".").shift(),plugin_version:"3.31.1-rc"};const x="https://fp-eu-w1-aai.flowplayer.com/in",j="POST",H=["ad-requested","ad-request-error","ad-request-completed","ad-completed","ad-started","ad-error","ad-skipped"],V=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],Q=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],K=k("ads/analytics"),z=RequestQueue.of(),G=(...e)=>Object.assign({},...e);class Analytics{static of(e,t){return new Analytics(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(e,t){return((e,...t)=>Object.keys(e).filter(e=>~t.indexOf(e)).reduce((t,r)=>Object.assign(t,{[r]:e[r]}),{}))(t,...e.valid_keys)}static mergeMetadata(e,t={}){return e.metadata=Analytics.pluck_valid_keys(e,G(e.metadata,t,{player_version:"3.31.1-rc"})),e}constructor(e,t={}){this.emitter=e,this.metadata=G(q,t.metadata||{}),this.emitter=e,this.events=t.events||[],this.required_keys=t.required_keys||[],this.optional_keys=t.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),K(this),this.wireup()}wireup(){this.events.forEach(e=>{this.emitter.on(e,t=>{const r=t.detail,i=G(this.metadata,{event_type:e},r),s=Analytics.pluck_valid_keys(this,i),o=Analytics.ensure_required_keys(this,s);if(K(`Event[${e}]`,{payload:s,observation:r}),o.length)return K(`Analytics.validate_metadata() failed for\n Event[${e}]\n missing keys: ${o}`,s);RequestQueue.rpush(z,[x,j,s])})})}destroy(){const e=this;e.emitter=e.metadata=e.events=e.required_keys=e.optional_keys=e.valid_keys=void 0}}const W="ssai-ad-active";var $;function Y(e,t){var r;switch(t){case $.Preroll:return 0;case $.Postroll:return-1;default:return null===(r=e.ssai)||void 0===r?void 0:r.provider.getContentCurrentTime(e)}}function X(e,t,r){var i,s,o,n;const a=null===(i=t.ssai)||void 0===i?void 0:i.provider.getAdType(),c=null===(n=null===(o=null===(s=t.ssai)||void 0===s?void 0:s.provider)||void 0===o?void 0:o.src)||void 0===n?void 0:n.analyticsId,d={ad_break_time:Y(t,a),ad_muted:t.muted,event_type:e,is_ssai:!0};a&&Object.assign(d,{ad_type:a}),c&&Object.assign(d,{ad_tag_id:c}),r&&"duration"in r&&Object.assign(d,{ad_remaining_seconds:r.duration-r.currentTime,ad_duration_seconds:r.duration}),t.emit("health:record",{event:"ads/"+e,detail:d}),t.emit(e,Object.assign(d,r))}function Z(e,t){var r;e.setState(W,!0);const i=null===(r=e.ssai)||void 0===r?void 0:r.state;i&&(i.adProgress={currentTime:0,duration:t},te(e,i))}function J(e,t){var r;const i=null===(r=e.ssai)||void 0===r?void 0:r.state;i&&(i.adProgress=t,te(e,i))}function ee(e){if(!e.ssai)return;const t=e.ssai.state;e.setState(W,!1),delete t.adProgress,void 0!==t.rate&&(e.playbackRate=t.rate,delete t.rate),"number"==typeof t.snapbackTime&&(c(e,t.snapbackTime),delete t.snapbackTime)}function te(e,t){const r=e.playbackRate;1!==r&&(t.rate=r,e.playbackRate=1)}!function(e){e.Preroll="preroll",e.Midroll="midroll",e.Postroll="postroll"}($||($={}));const re=navigator.languages||[navigator.language];const ie="flowplayer-ssai-ui",se="flowplayer-ssai-controls",oe="flowplayer-ssai-timeline",ne="flowplayer-ssai-indicator",ae={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},ce=Object.fromEntries(Object.entries(ae).map(([e,t])=>[t,e])),de=[1e7]+""+-1e3+-4e3+-8e3+-1e11,le="off";class FlowplayerError extends Error{static getErrorKey(e){return e in ce?ce[e]:ce["00-00"]}constructor(e,t,r={}){super(e),this.message=e,this.flowplayerErrorCode=t,this.config=r,this.id="undefined"==typeof crypto?"":de.replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)),this.isFatal=!!r.isFatal,this.errorKey=FlowplayerError.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}function ue(e,t){const r=new google.ima.dai.api.UiSettings,i=e.opt("lang")||function(){try{return re.reduce((e,t)=>~t.indexOf("-")?e.concat(t,t.split("-")[0]):e.concat(t),[])}catch(e){return[]}}().find(e=>!e.includes("-"))||"en";r.setLocale(i);const s=new google.ima.dai.api.StreamManager(e,function(e,t){const r=e._customElements.get(t);return r&&e.root.querySelector(r)||void 0}(e,ie),r);return s.addEventListener([google.ima.dai.api.StreamEvent.Type.LOADED,google.ima.dai.api.StreamEvent.Type.ERROR,google.ima.dai.api.StreamEvent.Type.STREAM_INITIALIZED,google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED,google.ima.dai.api.StreamEvent.Type.AD_PROGRESS,google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED,google.ima.dai.api.StreamEvent.Type.RESUMED,google.ima.dai.api.StreamEvent.Type.PAUSED,google.ima.dai.api.StreamEvent.Type.STARTED,google.ima.dai.api.StreamEvent.Type.COMPLETE,google.ima.dai.api.StreamEvent.Type.SKIPPED,google.ima.dai.api.StreamEvent.Type.CLICK],r=>{!function(e,t,r,i){var s;if((null===(s=e.ssai)||void 0===s?void 0:s.provider)!==i)return;switch(r.type){case google.ima.dai.api.StreamEvent.Type.STREAM_INITIALIZED:return async function(e,t,r,i){var s,o;const n=i.getStreamData().streamId;if(!n||!t.isPod)return;if(!t.isVod){const r=null===(s=t.src)||void 0===s?void 0:s.streamUrl;return r?(t.daiStream=t.buildPodStreamURL(r,n),e.setSrc(t.daiStream)):console.error("streamUrl param is missing : https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5?service=pod#create_a_simple_video_player_2")}const a=null===(o=t.src)||void 0===o?void 0:o.requestStreamUrl;if(!a)return console.error("requestStreamUrl param is missing : https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5?service=pod#vod-pod-serving_1");try{t.daiStream=await a(r,n),r.loadStreamMetadata(),e.setSrc(t.daiStream)}catch(r){me(e,t,n)}}(e,i,t,r);case google.ima.dai.api.StreamEvent.Type.RESUMED:return X(h,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.PAUSED:return X(f,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.COMPLETE:return X(v,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.SKIPPED:return X(g,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.LOADED:return function(e,t,r){const i=r.getStreamData().url;if(!i||t.isPod&&!t.isVod)return;t.daiStream=i,e.setSrc(i)}(e,i,r);case google.ima.dai.api.StreamEvent.Type.STARTED:return i.currentAd=r.getAd(),X(y,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED:return Z(e),X(u,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED:return X(p,e,pe(e,r,i)),ee(e),i.currentAd=void 0;case google.ima.dai.api.StreamEvent.Type.ERROR:return me(e,i,r.getStreamData().url||"",r);case google.ima.dai.api.StreamEvent.Type.AD_PROGRESS:{const t=pe(e,r,i);return J(e,t),X(m,e,t)}case google.ima.dai.api.StreamEvent.Type.CLICK:(function(e){if(!e.paused)e.togglePlay(!1)})(e)}}(e,s,r,t)},!1),e.on(b,r=>{var i,o;(null===(i=e.ssai)||void 0===i?void 0:i.provider)===t&&(null===(o=r.detail)||void 0===o||o.samples.forEach(e=>s.processMetadata("ID3",e.data,e.pts)))}),e.on(w,r=>{var i;const o=r.detail;if(!o||(null===(i=e.ssai)||void 0===i?void 0:i.provider)!==t)return;const n=o.event.messageData,a=o.event.calculatedPresentationTime;s.processMetadata("urn:google:dai:2018",n,a)}),s}function pe(e,t,r){const i=r.currentAd,s=Object.assign({},t.getStreamData().adProgressData);return i&&Object.assign(s,{vast_ad_id:i.getAdId()}),(null==i?void 0:i.getAdPodInfo())&&Object.assign(s,{position:i.getAdPodInfo().getAdPosition(),totals:i.getAdPodInfo().getTotalAds()}),s}function me(e,t,r,i){var s,o,n,a,c;e.emit("flowplayer:error",{error:new FlowplayerError((null===(s=null==i?void 0:i.getStreamData())||void 0===s?void 0:s.errorMessage)||"error loading stream",ae.AdsUnknown,{isFatal:!0,showErrorUI:!(null===(o=t.src)||void 0===o?void 0:o.backupStream),resource:(null===(n=null==i?void 0:i.getStreamData())||void 0===n?void 0:n.url)||(null===(a=t.src)||void 0===a?void 0:a.contentSourceId)||r,retryOpts:{retry:le}})}),(null===(c=t.src)||void 0===c?void 0:c.backupStream)&&e.setSrc(t.src.backupStream)}var ge;!function(e){e.Preroll="preroll",e.Midroll="midroll",e.Postroll="postroll"}(ge||(ge={}));const fe=k("ads/ima/sdk");var he;async function ye(e,t){var r;const i=null===(r=null===window||void 0===window?void 0:window.google)||void 0===r?void 0:r.ima;if(t?null==i?void 0:i.dai:i)return void fe(":noop");const s=t?"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js":e._storage.getItem("ima/debug")?"https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js":"https://imasdk.googleapis.com/js/sdkloader/ima3.js";try{return await async function(e){return new Promise((t,r)=>{let i=document.querySelector(`script[src='${e}']`);if(i)return ve(i,t,r);i=document.createElement("script"),i.setAttribute("state",he.LOADING),ve(i,t,r),i.src=e,document.head.appendChild(i)})}(s),void fe(":loaded")}catch(e){fe(`:error ${e.message}`,e)}}function ve(e,t,r){const i=e.getAttribute("state");if(i&&[he.ERROR,he.LOADED].includes(i))return t(void 0);e.addEventListener("load",()=>{e.setAttribute("state",he.LOADED),t(void 0)},{once:!0}),["error","abort"].forEach(t=>{e.addEventListener(t,()=>{e.setAttribute("state",he.ERROR),r("script failed to load")},{once:!0})})}!function(e){e.LOADING="loading",e.LOADED="loaded",e.ERROR="error"}(he||(he={}));class Dai{constructor(e){this.make_analytics(e)}async onload(e,t){var r,i;return await ye(e,!0),(null===(i=null===(r=window.google)||void 0===r?void 0:r.ima)||void 0===i?void 0:i.dai)?((null==this?void 0:this.streamManager)||(this.streamManager=ue(e,this)),this.src=t,this.isPod=!!t.customAssetKey||!!t.requestStreamUrl,this.isVod=!!t.contentSourceId||!!t.videoId||!!t.requestStreamUrl,this.isPod?this.requestPodStream(t):void this.requestStream(t)):(console.warn("google.ima.dai unavailable"),void(t.backupStream&&e.setSrc(t.backupStream)))}onNewSrc(e,t){var r;t.src!==this.daiStream&&(this.daiStream=void 0,e.ssai=void 0,null===(r=this.streamManager)||void 0===r||r.reset())}make_analytics(e){const t=Analytics.of(e,{required_keys:V,events:H,optional_keys:Q});e.on("config",()=>{var r;return Analytics.mergeMetadata(t,null===(r=e.opts)||void 0===r?void 0:r.metadata)})}onId3(e){var t;const r={},i=e.value;r[i.key]=i.data,null===(t=this.streamManager)||void 0===t||t.onTimedMetadata(r)}getAdType(){if(this.currentAd)switch(this.currentAd.getAdPodInfo().getPodIndex()){case 0:return ge.Preroll;case-1:return ge.Postroll;case-2:return;default:return ge.Midroll}}getContentCurrentTime(e){const t=e.currentTime;return this.streamManager?this.streamManager.contentTimeForStreamTime(t):t}setContentCurrentTime(e,t){}getContentDuration(e){const t=e.duration;return this.streamManager?this.streamManager.contentTimeForStreamTime(t):t}getPreviousActiveAdStart(e,t){var r;const i=null===(r=null==this?void 0:this.streamManager)||void 0===r?void 0:r.previousCuePointForStreamTime(t);if(i&&!i.played)return i.start}requestStream(e){var t;const r=this.isVod?new google.ima.dai.api.VODStreamRequest:new google.ima.dai.api.LiveStreamRequest;null===(t=this.streamManager)||void 0===t||t.requestStream(Object.assign(r,e))}requestPodStream(e){var t;const r=this.isVod?new google.ima.dai.api.PodVodStreamRequest:new google.ima.dai.api.PodStreamRequest;null===(t=this.streamManager)||void 0===t||t.requestStream(Object.assign(r,e))}buildPodStreamURL(e,t){return e.replace("[[STREAMID]]",t)}}Dai.Type="google/dai";const be=window.YospaceAdManagement||{AnalyticEventObserver:null};class EventObserver extends be.AnalyticEventObserver{constructor(e){super(),this.video=e}onAdvertBreakStart(e){const t=e.getDuration();if(!e.isActive()&&t){const e=a(this.video);c(this.video,e+t/1e3)}Z(this.video,e.getStart()),X(u,this.video)}onAdvertBreakEnd(){ee(this.video),X(p,this.video)}onAdvertStart(e){}onAdvertEnd(){}onTrackingEvent(e){}}function we(e,t){YospaceAdManagement.SessionVOD.create(e,t.ssai.properties,e=>{const r=e.getPayload();if(r.getSessionResult()===YospaceAdManagement.SessionResult.INITIALISED){t.ssai.session=r;const e=new EventObserver(t);r.addAnalyticObserver(e),t.setSrc({src:r.getPlaybackUrl()}),setInterval(()=>{const e=1e3*a(t);r.onPlayheadUpdate(e),function(e,t,r){const i=e.getCurrentAdBreak();if(!i)return;const s={currentTime:r-i.getStart(),duration:i.getDuration()};J(t,s),X(m,t,s)}(r,t,e)},250)}else console.warn("YoSpace Failed to initialise session. ResultCode = "+r.getResultCode())})}class Yospace{static exists(){return!!window.YospaceAdManagement}constructor(e){!function(e){Object.defineProperty(e,"currentTime",{get:function(){if(e.ssai){const t=e.ssai.state.adProgress;return t?t.currentTime:e.ssai.provider.getContentCurrentTime(e)}return a(e)},set:function(t){var r;if(e.ssai){if(e.ssai.state.adProgress)return;return null===(r=e.ssai.provider)||void 0===r?void 0:r.setContentCurrentTime(e,t)}return c(e,t)}}),Object.defineProperty(e,"duration",{get:function(){if(e.ssai){const t=e.ssai.state.adProgress;return t?t.duration:e.ssai.provider.getContentDuration(e)}return l(e)},set:function(){}})}(e)}onload(e,t){Object.assign(e.ssai,function(){const e=new YospaceAdManagement.SessionProperties;return e.setUserAgent(navigator.userAgent),{properties:e}}()),t&&t.src&&we(t.src,e)}getContentCurrentTime(e){const t=a(e),r=e.ssai.session;return r?r.getContentPositionForPlayhead(1e3*t)/1e3:t}setContentCurrentTime(e,t){const r=e.ssai.session;if(!r)return c(e,t);return c(e,r.getPlayheadForContentPosition(1e3*t)/1e3)}getContentDuration(e){const t=e.ssai.session,r=l(e);return t?t.getContentPositionForPlayhead(t.getDuration())/1e3:r}getAdType(){}getPreviousActiveAdStart(e,t){const r=e.ssai.session;if(!r)return;const i=r.getAdBreaks();let s;const o=1e3*t;return i.forEach(e=>{void 0===s&&e.getStart()<o&&e.isActive()&&(s=e)}),void 0!==s?s.getStart()/1e3:void 0}}function Se(e){var n;if((null===(n=this.player.ssai)||void 0===n?void 0:n.provider)===this)switch(e.type){case s:case i:return function(e){if(!e.player.hasState(W))return;return X(e.player.paused?f:h,e.player)}(this);case t:return function(e){const t=e.player,r=t.hls;if(!r)return;if(t.hasState(W))return r.config.maxBufferLength=1;const i=t.currentTime;let s,o=0;for(;o<t.buffered.length;o++)if(t.buffered.start(o)-1<=i&&t.buffered.end(o)>=i){s=t.buffered.end(o);break}if(void 0===s)return;const n=e.getAdCues().find(e=>!e.played&&e.endTime>s&&e.startTime<=s);return r.config.maxBufferLength=n?1:30}(this);case r:return function(e){if(!e.activeCue||!e.player.hasState(W))return;const t=e.player.currentTime;if(t<=e.activeCue.endTime)return e.ad={duration:e.activeCue.endTime-e.activeCue.startTime,currentTime:t-e.activeCue.startTime},X(m,e.player,Object.assign(Object.assign({},e.ad),e.podInfo));if(e.podInfo.totals!==e.podInfo.position)return;ke(e)}(this);case o:return ke(this)}}function ke(e){e.activeCue&&e.player.hasState(W)&&(X(v,e.player),X(p,e.player),ee(e.player),e.activeCue.played=!0,e.activeCue=void 0)}Yospace.Type="yospace";var Ae=function(e){var t={exports:{}};return e(t,t.exports),t.exports}(function(e,t){var r=function(){for(var e=new Array(256),t=0;t<256;++t)e[t]="%"+((t<16?"0":"")+t.toString(16)).toUpperCase();return e}(),i=Object.prototype.hasOwnProperty;t.arrayToObject=function(e,t){for(var r=t.plainObjects?Object.create(null):{},i=0;i<e.length;++i)void 0!==e[i]&&(r[i]=e[i]);return r},t.merge=function(e,r,s){if(!r)return e;if("object"!=typeof r){if(Array.isArray(e))e.push(r);else{if("object"!=typeof e)return[e,r];(s.plainObjects||s.allowPrototypes||!i.call(Object.prototype,r))&&(e[r]=!0)}return e}if("object"!=typeof e)return[e].concat(r);var o=e;return Array.isArray(e)&&!Array.isArray(r)&&(o=t.arrayToObject(e,s)),Object.keys(r).reduce(function(e,o){var n=r[o];return i.call(e,o)?e[o]=t.merge(e[o],n,s):e[o]=n,e},o)},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;for(var t="string"==typeof e?e:String(e),i="",s=0;s<t.length;++s){var o=t.charCodeAt(s);45===o||46===o||95===o||126===o||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?i+=t.charAt(s):o<128?i+=r[o]:o<2048?i+=r[192|o>>6]+r[128|63&o]:o<55296||o>=57344?i+=r[224|o>>12]+r[128|o>>6&63]+r[128|63&o]:(s+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(s)),i+=r[240|o>>18]+r[128|o>>12&63]+r[128|o>>6&63]+r[128|63&o])}return i},t.compact=function(e,r){if("object"!=typeof e||null===e)return e;var i=r||[],s=i.indexOf(e);if(-1!==s)return i[s];if(i.push(e),Array.isArray(e)){for(var o=[],n=0;n<e.length;++n)e[n]&&"object"==typeof e[n]?o.push(t.compact(e[n],i)):void 0!==e[n]&&o.push(e[n]);return o}for(var a=Object.keys(e),c=0;c<a.length;++c){var d=a[c];e[d]=t.compact(e[d],i)}return e},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null!=e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}}),Me={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},Ee={delimiter:"&",strictNullHandling:!1,skipNulls:!1,encode:!0,encoder:Ae.encode},Pe=function e(t,r,i,s,o,n,a,c,d){var l=t;if("function"==typeof a)l=a(r,l);else if(l instanceof Date)l=l.toISOString();else if(null===l){if(s)return n?n(r):r;l=""}if("string"==typeof l||"number"==typeof l||"boolean"==typeof l||Ae.isBuffer(l))return n?[n(r)+"="+n(l)]:[r+"="+String(l)];var u,p=[];if(void 0===l)return p;if(Array.isArray(a))u=a;else{var m=Object.keys(l);u=c?m.sort(c):m}for(var g=0;g<u.length;++g){var f=u[g];o&&null===l[f]||(p=Array.isArray(l)?p.concat(e(l[f],i(r,f),i,s,o,n,a,c,d)):p.concat(e(l[f],r+(d?"."+f:"["+f+"]"),i,s,o,n,a,c,d)))}return p},_e=Object.prototype.hasOwnProperty,Te={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1,allowDots:!1,decoder:Ae.decode},Ce=function e(t,r,i){if(!t.length)return r;var s,o=t.shift();if("[]"===o)s=(s=[]).concat(e(t,r,i));else{s=i.plainObjects?Object.create(null):{};var n="["===o.charAt(0)&&"]"===o.charAt(o.length-1)?o.slice(1,-1):o,a=parseInt(n,10);!isNaN(a)&&o!==n&&String(a)===n&&a>=0&&i.parseArrays&&a<=i.arrayLimit?(s=[])[a]=e(t,r,i):s[n]=e(t,r,i)}return s},Ue=function(e,t,r){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,o=/(\[[^[\]]*])/.exec(i),n=o?i.slice(0,o.index):i,a=[];if(n){if(!r.plainObjects&&_e.call(Object.prototype,n)&&!r.allowPrototypes)return;a.push(n)}for(var c=0;null!==(o=s.exec(i))&&c<r.depth;){if(c+=1,!r.plainObjects&&_e.call(Object.prototype,o[1].slice(1,-1))&&!r.allowPrototypes)return;a.push(o[1])}return o&&a.push("["+i.slice(o.index)+"]"),Ce(a,t,r)}},Re=function(e,t){var r,i,s=e,o=t||{},n=void 0===o.delimiter?Ee.delimiter:o.delimiter,a="boolean"==typeof o.strictNullHandling?o.strictNullHandling:Ee.strictNullHandling,c="boolean"==typeof o.skipNulls?o.skipNulls:Ee.skipNulls,d=("boolean"==typeof o.encode?o.encode:Ee.encode)?"function"==typeof o.encoder?o.encoder:Ee.encoder:null,l="function"==typeof o.sort?o.sort:null,u=void 0!==o.allowDots&&o.allowDots;if(null!==o.encoder&&void 0!==o.encoder&&"function"!=typeof o.encoder)throw new TypeError("Encoder has to be a function.");"function"==typeof o.filter?s=(i=o.filter)("",s):Array.isArray(o.filter)&&(r=i=o.filter);var p,m=[];if("object"!=typeof s||null===s)return"";p=o.arrayFormat in Me?o.arrayFormat:"indices"in o?o.indices?"indices":"repeat":"indices";var g=Me[p];r||(r=Object.keys(s)),l&&r.sort(l);for(var f=0;f<r.length;++f){var h=r[f];c&&null===s[h]||(m=m.concat(Pe(s[h],h,g,a,c,d,i,l,u)))}return m.join(n)},Ne=function(e,t){var r=t||{};if(null!==r.decoder&&void 0!==r.decoder&&"function"!=typeof r.decoder)throw new TypeError("Decoder has to be a function.");if(r.delimiter="string"==typeof r.delimiter||Ae.isRegExp(r.delimiter)?r.delimiter:Te.delimiter,r.depth="number"==typeof r.depth?r.depth:Te.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:Te.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:Te.decoder,r.allowDots="boolean"==typeof r.allowDots?r.allowDots:Te.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:Te.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:Te.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:Te.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:Te.strictNullHandling,""===e||null==e)return r.plainObjects?Object.create(null):{};for(var i="string"==typeof e?function(e,t){for(var r={},i=e.split(t.delimiter,t.parameterLimit===1/0?void 0:t.parameterLimit),s=0;s<i.length;++s){var o,n,a=i[s],c=-1===a.indexOf("]=")?a.indexOf("="):a.indexOf("]=")+1;-1===c?(o=t.decoder(a),n=t.strictNullHandling?null:""):(o=t.decoder(a.slice(0,c)),n=t.decoder(a.slice(c+1))),_e.call(r,o)?r[o]=[].concat(r[o]).concat(n):r[o]=n}return r}(e,r):e,s=r.plainObjects?Object.create(null):{},o=Object.keys(i),n=0;n<o.length;++n){var a=o[n],c=Ue(a,i[a],r);s=Ae.merge(s,c,r)}return Ae.compact(s)};const Oe=k("fpads:macros"),Fe=/\[([\s\S]+?)\]/g;class Macros{static run(e){try{return e()}catch(e){return void console.error(e)}}static merge(...e){return e.reduce((e,t)=>Object.assign(e,t),{})}static cast(e){return void 0===e?"":"function"==typeof e?encodeURIComponent(Macros.run(e)||""):"string"==typeof e?encodeURIComponent(e):"number"==typeof e||"boolean"==typeof e?e.toString():""}static normalize(e){return e.trim()}static process_obj(e,t,r){return Object.keys(e).reduce((i,s)=>{const o=Macros.process_str(s,t,r,!0),n=e[s];return null===n?(i[o]=n,i):"object"==typeof n?(i[o]=Macros.process_obj(n,t,r),i):"string"==typeof n?(i[o]=Macros.process_str(n,t,r),i):(console.error(new Error(`${n} at ${s} not a handled Macro type`)),i)},{})}static process_str(e,t,r,i=!1){return e.replace(t.pattern,(e,t)=>{const s=Macros.normalize(t);if(!(s in r)||void 0===r[s])return e;const o=r[s],n=i?o:Macros.cast(o);return Oe("Macro.replace(raw: %s, macro: %s, value: %s)",i,t,n),n})}constructor(e={},t=Fe){this.vars=e,this.pattern=t}fork(e={},t=this.pattern){const r=Macros.merge(this.vars,e);return new Macros(r,t)}compile(e,t={}){const r=Macros.merge(this.vars,t),[i,s]=e.split("?"),o=Ne(s||"",{strictNullHandling:!0,decoder:e=>e}),n=Re(Macros.process_obj(o,this,r),{encode:!1,strictNullHandling:!0});return Macros.process_str(i,this,r,!0)+"?"+n}}function De(e,t={width:0,height:0}){let r,i;try{const e=document.createElement("a");e.href=r=window.location!=window.parent.location?document.referrer:document.location.href,i=e.hostname}catch(e){console.error(e)}const{width:s,height:o}=t,{video_source:n}=e||{},a=function(){const e=window;return"object"==typeof e.__flowplayerAdParameters?e.__flowplayerAdParameters:{}}();return Object.assign({random:Date.now(),page_url:r,domain:i,player_width:s,player_height:o,video_url:n,videourl:n},a)}Macros.patterns={BRACKETS:Fe,CURLY:/\{([\s\S]+?)\}/g,UNDERSCORE:/__([\s\S]+?)__/g};const Ie="X-AD-CREATIVE-SIGNALING";class MediaTailor{constructor(e){this.ad={duration:0,currentTime:0},this.podInfo={totals:0,position:0},this.player=e,e.on([r,t,s,i,o],Se.bind(this))}onload(e,t){this.stream=this.compileMacros(e,t),e.setSrc(this.stream)}compileMacros(e,t){var r,i;const s=e.opts,o=De(void 0,{width:e.clientWidth,height:e.clientHeight});(s.duration||(null===(r=s.metadata)||void 0===r?void 0:r.duration))&&Object.assign(o,{media_duration:s.duration||(null===(i=s.metadata)||void 0===i?void 0:i.duration)});return new Macros(Object.assign({referrer_url:document.referrer,autoplay:!!e.opts.autoplay},e.opts.metadata,t.parameters,o)).compile(t.stream)}onNewSrc(e,t){t.src!==this.stream&&(this.activeCue=void 0,e.ssai=void 0)}getPreviousActiveAdStart(e,t){if(this.activeCue)return;const r=this.getAdCues(),i=r.slice().reverse().find(e=>e.endTime<t);if(!i||i.played)return;const s=r[r.indexOf(i)+1];return!s||t<s.startTime&&(t+.1<=s.startTime||s.played||e.paused)?this.findAdBreakStartCue(i).startTime:void 0}onId3(e){var t;if(e.played||e==this.activeCue)return;if((null===(t=e.value)||void 0===t?void 0:t.key)!==Ie)return;if(this.activeCue)return X(v,this.player),this.activeCue.played=!0,this.activeCue=e,++this.podInfo.position,X(y,this.player,Object.assign(Object.assign({},this.ad),this.podInfo));const r=this.findAdBreakStartCue(e);if(r!==e)return this.player.currentTime=r.startTime;Math.abs(e.startTime-this.player.currentTime)>1&&(this.player.currentTime=e.startTime),this.activeCue=e,Z(this.player),this.setPodInfo(e),X(u,this.player),X(y,this.player,Object.assign(Object.assign({},this.ad),this.podInfo))}setPodInfo(e){const t=this.getAdCues().filter(t=>t.startTime>=e.startTime);let r=1;for(;r<=t.length-1&&!(t[r].startTime-t[r-1].endTime>1);)r++;return this.podInfo={totals:r,position:1},this.player.hasState("is-live")?this.ad_type=$.Midroll:e.startTime<=1?this.ad_type=$.Preroll:Math.abs(t[r-1].endTime-this.player.duration)<=1?this.ad_type=$.Postroll:this.ad_type=$.Midroll}findAdBreakStartCue(e){const t=this.getAdCues().filter(t=>t.startTime<=e.startTime).reverse();let r=e,i=1;for(;i<t.length&&!(t[i-1].startTime-t[i].endTime>.1);)r=t[i],i++;return r}getAdCues(){var e;const t=(null===(e=Array.from(this.player.textTracks).find(e=>"metadata"===e.kind))||void 0===e?void 0:e.cues)||[];return Array.from(t).slice().filter(e=>{var t;return(null===(t=e.value)||void 0===t?void 0:t.key)===Ie})}getContentCurrentTime(e){if(!this.activeCue)return 0;let t=this.findAdBreakStartCue(this.activeCue).startTime;return this.getAdCues().filter(e=>e.endTime<t).forEach(e=>{t-=e.endTime-e.startTime}),t}getAdType(){return this.ad_type}getContentDuration(e){return 0}setContentCurrentTime(e,t){}}MediaTailor.Type="mediaTailor";const Le=(e,t)=>new(((e,t)=>{const r=e.get(t);if(!r)throw new Error(`no flowplayer component with the name ${t} exists`);const i=window.customElements.get(t);if(!i)throw new Error(`no default flowplayer component with the name ${t} exists`);const s=window.customElements.get(r);return"function"!=typeof s?i:s})(e._customElements,t))(e),Be=(e,t,r)=>{window.customElements.get(t)||window.customElements.define(t,r),e.customElements.get(t)||e.customElements.set(t,t)};class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class SSAIAdUi extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-ui",this.append(...this.fsIcons(),...this.player.createComponents(se,ne))}fsIcons(){return this.player.createComponents("flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon").map(e=>(e.onclick=()=>this.player.toggleFullScreen(),e))}}class SSAITimeline extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-timeline";const t=document.createElement("div");t.className="fp-ssai-progress fp-color",this.append(t),this.player.on(p,()=>{t.classList.remove("go"),"--ssai-percent-complete --ssai-percent-previous".split(" ").forEach(e=>this.style.setProperty(e,"0"))}),this.player.on(m,e=>{var r,i;const s=null===(r=e.detail)||void 0===r?void 0:r.currentTime,o=null===(i=e.detail)||void 0===i?void 0:i.duration;if(void 0===o||void 0===s)return;const n=s/o*100,a=t.style.getPropertyValue("--ssai-percent-complete");t.classList.remove("go"),t.style.setProperty("--ssai-percent-previous",a),t.style.setProperty("--ssai-percent-complete",n.toFixed(3)),t.classList.add("go")})}}function qe(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}function xe(e){if(isNaN(e)||e>=Number.MAX_SAFE_INTEGER)return"";const t=e<0?"-":"";e=Math.round(Math.abs(e));const r=Math.floor(e/3600);let i=Math.floor(e/60);return e-=60*i,r>=1?(i-=60*r,t+r+":"+qe(i)+":"+qe(e)):t+qe(i)+":"+qe(e)}class SSAIControls extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-controls";const t=document.createElement("span");t.className="fp-ssai-elapsed";const r=document.createElement("span");r.className="fp-ssai-duration",this.player.on(m,e=>{const i=e.detail;i&&(t.textContent=xe(i.currentTime||0),r.textContent=xe(i.duration||0))}),this.append(...this.player.createComponents("flowplayer-control-buttons"),t,...this.player.createComponents(oe),r,...this.player.createComponents("flowplayer-volume-control"))}}class SSAIAdIndicator extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-indicator",this.player.on(y,e=>{var t,r;const i=null===(t=e.detail)||void 0===t?void 0:t.totals,s=null===(r=e.detail)||void 0===r?void 0:r.position;void 0!==i&&void 0!==s&&(this.textContent=`${this.player.i18n("ads.indicator","ADS")} ${s} / ${i}`)})}}var je,He=Object.freeze({__proto__:null,ID3:"ID3"});const Ve=((je=class ID3{init(e,t,r){r.textTracks.addEventListener("addtrack",({track:e})=>{if(e&&"metadata"===e.kind)return"id3"==e.id||"id3"==e.label||"com.apple.streaming"==e.inBandMetadataTrackDispatchType?function(e,t){t.mode="hidden",t.addEventListener("cuechange",async()=>{Array.from(t.activeCues||[]).forEach(async t=>{(function(e){return"object"==typeof e.value&&"string"==typeof e.value.key&&!!e.value.data})(t)&&e.emit("ID3",{cue:t})})})}(r,e):void 0})}}).pluginName="id3",je.events=He,je),Qe=e(window,Ve);var Ke;const ze=((Ke=class Ssai{constructor(e,t){this.umd=e,this.providers=[],this.player=t,Be(e,ie,SSAIAdUi),Be(e,oe,SSAITimeline),Be(e,se,SSAIControls),Be(e,ne,SSAIAdIndicator)}init(e,t,r){const i=Le(r,ie);if(t.append(i),r.on(Qe.events.ID3,({detail:e})=>{var t,i,s;const o=null==e?void 0:e.cue;o&&(null===(s=null===(t=r.ssai)||void 0===t?void 0:(i=t.provider).onId3)||void 0===s||s.call(i,o))}),r.on("seeked",()=>function(e){if(e.opt("live"))return;if(!e.ssai)return;const{provider:t,state:r}=e.ssai;if(r.snapback)return r.snapback=!1;const i=a(e),s=t.getPreviousActiveAdStart(e,i);void 0!==s&&(r.snapback=!0,r.snapbackTime=i,c(e,s))}(r)),r.on("src",e=>{var t,i,s;r.setState(W,!1),null===(s=null===(i=null===(t=r.ssai)||void 0===t?void 0:t.provider)||void 0===i?void 0:i.onNewSrc)||void 0===s||s.call(i,r,e.detail)}),this.umd.extensions.find(e=>e.pluginName===Qe.pluginName))return;new Qe(this.umd,r).init(e,t,r)}onload(e,t,r,i){var s,o;null===(o=null===(s=r.ssai)||void 0===s?void 0:s.provider)||void 0===o||o.onload(r,i)}wants(e,t,r){return!!this.findProvider(t)}findProvider(e){let t;switch(e.type){case MediaTailor.Type:t=this.providers.find(e=>e instanceof MediaTailor)||new MediaTailor(this.player);break;case Dai.Type:t=this.providers.find(e=>e instanceof Dai)||new Dai(this.player);break;case Yospace.Type:Yospace.exists()&&(t=this.providers.find(e=>e instanceof Yospace)||new Yospace(this.player))}return t&&(this.player.ssai={provider:t,state:{snapback:!1}},this.providers.includes(t)||this.providers.push(t)),t}}).pluginName="ssai",Ke.events=S,Ke);return e(window,ze)});
|
|
7
|
+
*/const F=class Bowser{static getParser(e,t=!1){if("string"!=typeof e)throw new Error("UserAgent should be a string");return new Parser(e,t)}static parse(e){return new Parser(e).getResult()}static get BROWSER_MAP(){return E}static get ENGINE_MAP(){return T}static get OS_MAP(){return _}static get PLATFORMS_MAP(){return P}}.parse(window.navigator.userAgent),{platform:D,os:I,browser:L}=F,B=e=>e&&e.toLowerCase();var q={rnd:Math.random().toString(36).substr(2,32),os:B(I.name+(I.versionName?` ${I.versionName}`:"")),device:B(D.type),browser:B(L.name),browser_version:(L&&L.version?L.version:"unknown").split(".").shift(),plugin_version:"3.31.1-rc.2"};const x="https://fp-eu-w1-aai.flowplayer.com/in",j="POST",H=["ad-requested","ad-request-error","ad-request-completed","ad-completed","ad-started","ad-error","ad-skipped"],V=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],Q=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],K=k("ads/analytics"),z=RequestQueue.of(),G=(...e)=>Object.assign({},...e);class Analytics{static of(e,t){return new Analytics(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(e,t){return((e,...t)=>Object.keys(e).filter(e=>~t.indexOf(e)).reduce((t,r)=>Object.assign(t,{[r]:e[r]}),{}))(t,...e.valid_keys)}static mergeMetadata(e,t={}){return e.metadata=Analytics.pluck_valid_keys(e,G(e.metadata,t,{player_version:"3.31.1-rc.2"})),e}constructor(e,t={}){this.emitter=e,this.metadata=G(q,t.metadata||{}),this.emitter=e,this.events=t.events||[],this.required_keys=t.required_keys||[],this.optional_keys=t.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),K(this),this.wireup()}wireup(){this.events.forEach(e=>{this.emitter.on(e,t=>{const r=t.detail,i=G(this.metadata,{event_type:e},r),s=Analytics.pluck_valid_keys(this,i),o=Analytics.ensure_required_keys(this,s);if(K(`Event[${e}]`,{payload:s,observation:r}),o.length)return K(`Analytics.validate_metadata() failed for\n Event[${e}]\n missing keys: ${o}`,s);RequestQueue.rpush(z,[x,j,s])})})}destroy(){const e=this;e.emitter=e.metadata=e.events=e.required_keys=e.optional_keys=e.valid_keys=void 0}}const W="ssai-ad-active";var $;function Y(e,t){var r;switch(t){case $.Preroll:return 0;case $.Postroll:return-1;default:return null===(r=e.ssai)||void 0===r?void 0:r.provider.getContentCurrentTime(e)}}function X(e,t,r){var i,s,o,n;const a=null===(i=t.ssai)||void 0===i?void 0:i.provider.getAdType(),c=null===(n=null===(o=null===(s=t.ssai)||void 0===s?void 0:s.provider)||void 0===o?void 0:o.src)||void 0===n?void 0:n.analyticsId,d={ad_break_time:Y(t,a),ad_muted:t.muted,event_type:e,is_ssai:!0};a&&Object.assign(d,{ad_type:a}),c&&Object.assign(d,{ad_tag_id:c}),r&&"duration"in r&&Object.assign(d,{ad_remaining_seconds:r.duration-r.currentTime,ad_duration_seconds:r.duration}),t.emit("health:record",{event:"ads/"+e,detail:d}),t.emit(e,Object.assign(d,r))}function Z(e,t){var r;e.setState(W,!0);const i=null===(r=e.ssai)||void 0===r?void 0:r.state;i&&(i.adProgress={currentTime:0,duration:t},te(e,i))}function J(e,t){var r;const i=null===(r=e.ssai)||void 0===r?void 0:r.state;i&&(i.adProgress=t,te(e,i))}function ee(e){if(!e.ssai)return;const t=e.ssai.state;e.setState(W,!1),delete t.adProgress,void 0!==t.rate&&(e.playbackRate=t.rate,delete t.rate),"number"==typeof t.snapbackTime&&(c(e,t.snapbackTime),delete t.snapbackTime)}function te(e,t){const r=e.playbackRate;1!==r&&(t.rate=r,e.playbackRate=1)}!function(e){e.Preroll="preroll",e.Midroll="midroll",e.Postroll="postroll"}($||($={}));const re=navigator.languages||[navigator.language];const ie="flowplayer-ssai-ui",se="flowplayer-ssai-controls",oe="flowplayer-ssai-timeline",ne="flowplayer-ssai-indicator",ae={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},ce=Object.fromEntries(Object.entries(ae).map(([e,t])=>[t,e])),de=[1e7]+""+-1e3+-4e3+-8e3+-1e11,le="off";class FlowplayerError extends Error{static getErrorKey(e){return e in ce?ce[e]:ce["00-00"]}constructor(e,t,r={}){super(e),this.message=e,this.flowplayerErrorCode=t,this.config=r,this.id="undefined"==typeof crypto?"":de.replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)),this.isFatal=!!r.isFatal,this.errorKey=FlowplayerError.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}function ue(e,t){const r=new google.ima.dai.api.UiSettings,i=e.opt("lang")||function(){try{return re.reduce((e,t)=>~t.indexOf("-")?e.concat(t,t.split("-")[0]):e.concat(t),[])}catch(e){return[]}}().find(e=>!e.includes("-"))||"en";r.setLocale(i);const s=new google.ima.dai.api.StreamManager(e,function(e,t){const r=e._customElements.get(t);return r&&e.root.querySelector(r)||void 0}(e,ie),r);return s.addEventListener([google.ima.dai.api.StreamEvent.Type.LOADED,google.ima.dai.api.StreamEvent.Type.ERROR,google.ima.dai.api.StreamEvent.Type.STREAM_INITIALIZED,google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED,google.ima.dai.api.StreamEvent.Type.AD_PROGRESS,google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED,google.ima.dai.api.StreamEvent.Type.RESUMED,google.ima.dai.api.StreamEvent.Type.PAUSED,google.ima.dai.api.StreamEvent.Type.STARTED,google.ima.dai.api.StreamEvent.Type.COMPLETE,google.ima.dai.api.StreamEvent.Type.SKIPPED,google.ima.dai.api.StreamEvent.Type.CLICK],r=>{!function(e,t,r,i){var s;if((null===(s=e.ssai)||void 0===s?void 0:s.provider)!==i)return;switch(r.type){case google.ima.dai.api.StreamEvent.Type.STREAM_INITIALIZED:return async function(e,t,r,i){var s,o;const n=i.getStreamData().streamId;if(!n||!t.isPod)return;if(!t.isVod){const r=null===(s=t.src)||void 0===s?void 0:s.streamUrl;return r?(t.daiStream=t.buildPodStreamURL(r,n),e.setSrc(t.daiStream)):console.error("streamUrl param is missing : https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5?service=pod#create_a_simple_video_player_2")}const a=null===(o=t.src)||void 0===o?void 0:o.requestStreamUrl;if(!a)return console.error("requestStreamUrl param is missing : https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5?service=pod#vod-pod-serving_1");try{t.daiStream=await a(r,n),r.loadStreamMetadata(),e.setSrc(t.daiStream)}catch(r){me(e,t,n)}}(e,i,t,r);case google.ima.dai.api.StreamEvent.Type.RESUMED:return X(h,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.PAUSED:return X(f,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.COMPLETE:return X(v,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.SKIPPED:return X(g,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.LOADED:return function(e,t,r){const i=r.getStreamData().url;if(!i||t.isPod&&!t.isVod)return;t.daiStream=i,e.setSrc(i)}(e,i,r);case google.ima.dai.api.StreamEvent.Type.STARTED:return i.currentAd=r.getAd(),X(y,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED:return Z(e),X(u,e,pe(e,r,i));case google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED:return X(p,e,pe(e,r,i)),ee(e),i.currentAd=void 0;case google.ima.dai.api.StreamEvent.Type.ERROR:return me(e,i,r.getStreamData().url||"",r);case google.ima.dai.api.StreamEvent.Type.AD_PROGRESS:{const t=pe(e,r,i);return J(e,t),X(m,e,t)}case google.ima.dai.api.StreamEvent.Type.CLICK:(function(e){if(!e.paused)e.togglePlay(!1)})(e)}}(e,s,r,t)},!1),e.on(b,r=>{var i,o;(null===(i=e.ssai)||void 0===i?void 0:i.provider)===t&&(null===(o=r.detail)||void 0===o||o.samples.forEach(e=>s.processMetadata("ID3",e.data,e.pts)))}),e.on(w,r=>{var i;const o=r.detail;if(!o||(null===(i=e.ssai)||void 0===i?void 0:i.provider)!==t)return;const n=o.event.messageData,a=o.event.calculatedPresentationTime;s.processMetadata("urn:google:dai:2018",n,a)}),s}function pe(e,t,r){const i=r.currentAd,s=Object.assign({},t.getStreamData().adProgressData);return i&&Object.assign(s,{vast_ad_id:i.getAdId()}),(null==i?void 0:i.getAdPodInfo())&&Object.assign(s,{position:i.getAdPodInfo().getAdPosition(),totals:i.getAdPodInfo().getTotalAds()}),s}function me(e,t,r,i){var s,o,n,a,c;e.emit("flowplayer:error",{error:new FlowplayerError((null===(s=null==i?void 0:i.getStreamData())||void 0===s?void 0:s.errorMessage)||"error loading stream",ae.AdsUnknown,{isFatal:!0,showErrorUI:!(null===(o=t.src)||void 0===o?void 0:o.backupStream),resource:(null===(n=null==i?void 0:i.getStreamData())||void 0===n?void 0:n.url)||(null===(a=t.src)||void 0===a?void 0:a.contentSourceId)||r,retryOpts:{retry:le}})}),(null===(c=t.src)||void 0===c?void 0:c.backupStream)&&e.setSrc(t.src.backupStream)}var ge;!function(e){e.Preroll="preroll",e.Midroll="midroll",e.Postroll="postroll"}(ge||(ge={}));const fe=k("ads/ima/sdk");var he;async function ye(e,t){var r;const i=null===(r=null===window||void 0===window?void 0:window.google)||void 0===r?void 0:r.ima;if(t?null==i?void 0:i.dai:i)return void fe(":noop");const s=t?"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js":e._storage.getItem("ima/debug")?"https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js":"https://imasdk.googleapis.com/js/sdkloader/ima3.js";try{return await async function(e){return new Promise((t,r)=>{let i=document.querySelector(`script[src='${e}']`);if(i)return ve(i,t,r);i=document.createElement("script"),i.setAttribute("state",he.LOADING),ve(i,t,r),i.src=e,document.head.appendChild(i)})}(s),void fe(":loaded")}catch(e){fe(`:error ${e.message}`,e)}}function ve(e,t,r){const i=e.getAttribute("state");if(i&&[he.ERROR,he.LOADED].includes(i))return t(void 0);e.addEventListener("load",()=>{e.setAttribute("state",he.LOADED),t(void 0)},{once:!0}),["error","abort"].forEach(t=>{e.addEventListener(t,()=>{e.setAttribute("state",he.ERROR),r("script failed to load")},{once:!0})})}!function(e){e.LOADING="loading",e.LOADED="loaded",e.ERROR="error"}(he||(he={}));class Dai{constructor(e){this.make_analytics(e)}async onload(e,t){var r,i;return await ye(e,!0),(null===(i=null===(r=window.google)||void 0===r?void 0:r.ima)||void 0===i?void 0:i.dai)?((null==this?void 0:this.streamManager)||(this.streamManager=ue(e,this)),this.src=t,this.isPod=!!t.customAssetKey||!!t.requestStreamUrl,this.isVod=!!t.contentSourceId||!!t.videoId||!!t.requestStreamUrl,this.isPod?this.requestPodStream(t):void this.requestStream(t)):(console.warn("google.ima.dai unavailable"),void(t.backupStream&&e.setSrc(t.backupStream)))}onNewSrc(e,t){var r;t.src!==this.daiStream&&(this.daiStream=void 0,e.ssai=void 0,null===(r=this.streamManager)||void 0===r||r.reset())}make_analytics(e){const t=Analytics.of(e,{required_keys:V,events:H,optional_keys:Q});e.on("config",()=>{var r;return Analytics.mergeMetadata(t,null===(r=e.opts)||void 0===r?void 0:r.metadata)})}onId3(e){var t;const r={},i=e.value;r[i.key]=i.data,null===(t=this.streamManager)||void 0===t||t.onTimedMetadata(r)}getAdType(){if(this.currentAd)switch(this.currentAd.getAdPodInfo().getPodIndex()){case 0:return ge.Preroll;case-1:return ge.Postroll;case-2:return;default:return ge.Midroll}}getContentCurrentTime(e){const t=e.currentTime;return this.streamManager?this.streamManager.contentTimeForStreamTime(t):t}setContentCurrentTime(e,t){}getContentDuration(e){const t=e.duration;return this.streamManager?this.streamManager.contentTimeForStreamTime(t):t}getPreviousActiveAdStart(e,t){var r;const i=null===(r=null==this?void 0:this.streamManager)||void 0===r?void 0:r.previousCuePointForStreamTime(t);if(i&&!i.played)return i.start}requestStream(e){var t;const r=this.isVod?new google.ima.dai.api.VODStreamRequest:new google.ima.dai.api.LiveStreamRequest;null===(t=this.streamManager)||void 0===t||t.requestStream(Object.assign(r,e))}requestPodStream(e){var t;const r=this.isVod?new google.ima.dai.api.PodVodStreamRequest:new google.ima.dai.api.PodStreamRequest;null===(t=this.streamManager)||void 0===t||t.requestStream(Object.assign(r,e))}buildPodStreamURL(e,t){return e.replace("[[STREAMID]]",t)}}Dai.Type="google/dai";let be=null;const we=()=>{if(be)return be;const e=class extends YospaceAdManagement.AnalyticEventObserver{constructor(e){super(),this.video=e}onAdvertBreakStart(e){const t=e.getDuration();if(!e.isActive()&&t){const e=a(this.video);c(this.video,e+t/1e3)}Z(this.video,e.getStart()),X(u,this.video)}onAdvertBreakEnd(){ee(this.video),X(p,this.video)}onAdvertStart(e){}onAdvertEnd(){}onTrackingEvent(e){}};return be=e,e};function Se(e,t){YospaceAdManagement.SessionVOD.create(e,t.ssai.properties,e=>{const r=e.getPayload();if(r.getSessionResult()===YospaceAdManagement.SessionResult.INITIALISED){t.ssai.session=r;const e=new(we())(t);r.addAnalyticObserver(e),t.setSrc({src:r.getPlaybackUrl()}),setInterval(()=>{const e=1e3*a(t);r.onPlayheadUpdate(e),function(e,t,r){const i=e.getCurrentAdBreak();if(!i)return;const s={currentTime:r-i.getStart(),duration:i.getDuration()};J(t,s),X(m,t,s)}(r,t,e)},250)}else console.warn("YoSpace Failed to initialise session. ResultCode = "+r.getResultCode())})}class Yospace{static exists(){return!!window.YospaceAdManagement}constructor(e){!function(e){Object.defineProperty(e,"currentTime",{get:function(){if(e.ssai){const t=e.ssai.state.adProgress;return t?t.currentTime:e.ssai.provider.getContentCurrentTime(e)}return a(e)},set:function(t){var r;if(e.ssai){if(e.ssai.state.adProgress)return;return null===(r=e.ssai.provider)||void 0===r?void 0:r.setContentCurrentTime(e,t)}return c(e,t)}}),Object.defineProperty(e,"duration",{get:function(){if(e.ssai){const t=e.ssai.state.adProgress;return t?t.duration:e.ssai.provider.getContentDuration(e)}return l(e)},set:function(){}})}(e)}onload(e,t){Object.assign(e.ssai,function(){const e=new YospaceAdManagement.SessionProperties;return e.setUserAgent(navigator.userAgent),{properties:e}}()),t&&t.src&&Se(t.src,e)}getContentCurrentTime(e){const t=a(e),r=e.ssai.session;return r?r.getContentPositionForPlayhead(1e3*t)/1e3:t}setContentCurrentTime(e,t){const r=e.ssai.session;if(!r)return c(e,t);return c(e,r.getPlayheadForContentPosition(1e3*t)/1e3)}getContentDuration(e){const t=e.ssai.session,r=l(e);return t?t.getContentPositionForPlayhead(t.getDuration())/1e3:r}getAdType(){}getPreviousActiveAdStart(e,t){const r=e.ssai.session;if(!r)return;const i=r.getAdBreaks();let s;const o=1e3*t;return i.forEach(e=>{void 0===s&&e.getStart()<o&&e.isActive()&&(s=e)}),void 0!==s?s.getStart()/1e3:void 0}}function ke(e){var n;if((null===(n=this.player.ssai)||void 0===n?void 0:n.provider)===this)switch(e.type){case s:case i:return function(e){if(!e.player.hasState(W))return;return X(e.player.paused?f:h,e.player)}(this);case t:return function(e){const t=e.player,r=t.hls;if(!r)return;if(t.hasState(W))return r.config.maxBufferLength=1;const i=t.currentTime;let s,o=0;for(;o<t.buffered.length;o++)if(t.buffered.start(o)-1<=i&&t.buffered.end(o)>=i){s=t.buffered.end(o);break}if(void 0===s)return;const n=e.getAdCues().find(e=>!e.played&&e.endTime>s&&e.startTime<=s);return r.config.maxBufferLength=n?1:30}(this);case r:return function(e){if(!e.activeCue||!e.player.hasState(W))return;const t=e.player.currentTime;if(t<=e.activeCue.endTime)return e.ad={duration:e.activeCue.endTime-e.activeCue.startTime,currentTime:t-e.activeCue.startTime},X(m,e.player,Object.assign(Object.assign({},e.ad),e.podInfo));if(e.podInfo.totals!==e.podInfo.position)return;Ae(e)}(this);case o:return Ae(this)}}function Ae(e){e.activeCue&&e.player.hasState(W)&&(X(v,e.player),X(p,e.player),ee(e.player),e.activeCue.played=!0,e.activeCue=void 0)}Yospace.Type="yospace";var Me=function(e){var t={exports:{}};return e(t,t.exports),t.exports}(function(e,t){var r=function(){for(var e=new Array(256),t=0;t<256;++t)e[t]="%"+((t<16?"0":"")+t.toString(16)).toUpperCase();return e}(),i=Object.prototype.hasOwnProperty;t.arrayToObject=function(e,t){for(var r=t.plainObjects?Object.create(null):{},i=0;i<e.length;++i)void 0!==e[i]&&(r[i]=e[i]);return r},t.merge=function(e,r,s){if(!r)return e;if("object"!=typeof r){if(Array.isArray(e))e.push(r);else{if("object"!=typeof e)return[e,r];(s.plainObjects||s.allowPrototypes||!i.call(Object.prototype,r))&&(e[r]=!0)}return e}if("object"!=typeof e)return[e].concat(r);var o=e;return Array.isArray(e)&&!Array.isArray(r)&&(o=t.arrayToObject(e,s)),Object.keys(r).reduce(function(e,o){var n=r[o];return i.call(e,o)?e[o]=t.merge(e[o],n,s):e[o]=n,e},o)},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;for(var t="string"==typeof e?e:String(e),i="",s=0;s<t.length;++s){var o=t.charCodeAt(s);45===o||46===o||95===o||126===o||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?i+=t.charAt(s):o<128?i+=r[o]:o<2048?i+=r[192|o>>6]+r[128|63&o]:o<55296||o>=57344?i+=r[224|o>>12]+r[128|o>>6&63]+r[128|63&o]:(s+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(s)),i+=r[240|o>>18]+r[128|o>>12&63]+r[128|o>>6&63]+r[128|63&o])}return i},t.compact=function(e,r){if("object"!=typeof e||null===e)return e;var i=r||[],s=i.indexOf(e);if(-1!==s)return i[s];if(i.push(e),Array.isArray(e)){for(var o=[],n=0;n<e.length;++n)e[n]&&"object"==typeof e[n]?o.push(t.compact(e[n],i)):void 0!==e[n]&&o.push(e[n]);return o}for(var a=Object.keys(e),c=0;c<a.length;++c){var d=a[c];e[d]=t.compact(e[d],i)}return e},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null!=e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}}),Ee={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},Pe={delimiter:"&",strictNullHandling:!1,skipNulls:!1,encode:!0,encoder:Me.encode},_e=function e(t,r,i,s,o,n,a,c,d){var l=t;if("function"==typeof a)l=a(r,l);else if(l instanceof Date)l=l.toISOString();else if(null===l){if(s)return n?n(r):r;l=""}if("string"==typeof l||"number"==typeof l||"boolean"==typeof l||Me.isBuffer(l))return n?[n(r)+"="+n(l)]:[r+"="+String(l)];var u,p=[];if(void 0===l)return p;if(Array.isArray(a))u=a;else{var m=Object.keys(l);u=c?m.sort(c):m}for(var g=0;g<u.length;++g){var f=u[g];o&&null===l[f]||(p=Array.isArray(l)?p.concat(e(l[f],i(r,f),i,s,o,n,a,c,d)):p.concat(e(l[f],r+(d?"."+f:"["+f+"]"),i,s,o,n,a,c,d)))}return p},Te=Object.prototype.hasOwnProperty,Ce={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1,allowDots:!1,decoder:Me.decode},Ue=function e(t,r,i){if(!t.length)return r;var s,o=t.shift();if("[]"===o)s=(s=[]).concat(e(t,r,i));else{s=i.plainObjects?Object.create(null):{};var n="["===o.charAt(0)&&"]"===o.charAt(o.length-1)?o.slice(1,-1):o,a=parseInt(n,10);!isNaN(a)&&o!==n&&String(a)===n&&a>=0&&i.parseArrays&&a<=i.arrayLimit?(s=[])[a]=e(t,r,i):s[n]=e(t,r,i)}return s},Re=function(e,t,r){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,o=/(\[[^[\]]*])/.exec(i),n=o?i.slice(0,o.index):i,a=[];if(n){if(!r.plainObjects&&Te.call(Object.prototype,n)&&!r.allowPrototypes)return;a.push(n)}for(var c=0;null!==(o=s.exec(i))&&c<r.depth;){if(c+=1,!r.plainObjects&&Te.call(Object.prototype,o[1].slice(1,-1))&&!r.allowPrototypes)return;a.push(o[1])}return o&&a.push("["+i.slice(o.index)+"]"),Ue(a,t,r)}},Ne=function(e,t){var r,i,s=e,o=t||{},n=void 0===o.delimiter?Pe.delimiter:o.delimiter,a="boolean"==typeof o.strictNullHandling?o.strictNullHandling:Pe.strictNullHandling,c="boolean"==typeof o.skipNulls?o.skipNulls:Pe.skipNulls,d=("boolean"==typeof o.encode?o.encode:Pe.encode)?"function"==typeof o.encoder?o.encoder:Pe.encoder:null,l="function"==typeof o.sort?o.sort:null,u=void 0!==o.allowDots&&o.allowDots;if(null!==o.encoder&&void 0!==o.encoder&&"function"!=typeof o.encoder)throw new TypeError("Encoder has to be a function.");"function"==typeof o.filter?s=(i=o.filter)("",s):Array.isArray(o.filter)&&(r=i=o.filter);var p,m=[];if("object"!=typeof s||null===s)return"";p=o.arrayFormat in Ee?o.arrayFormat:"indices"in o?o.indices?"indices":"repeat":"indices";var g=Ee[p];r||(r=Object.keys(s)),l&&r.sort(l);for(var f=0;f<r.length;++f){var h=r[f];c&&null===s[h]||(m=m.concat(_e(s[h],h,g,a,c,d,i,l,u)))}return m.join(n)},Oe=function(e,t){var r=t||{};if(null!==r.decoder&&void 0!==r.decoder&&"function"!=typeof r.decoder)throw new TypeError("Decoder has to be a function.");if(r.delimiter="string"==typeof r.delimiter||Me.isRegExp(r.delimiter)?r.delimiter:Ce.delimiter,r.depth="number"==typeof r.depth?r.depth:Ce.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:Ce.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:Ce.decoder,r.allowDots="boolean"==typeof r.allowDots?r.allowDots:Ce.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:Ce.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:Ce.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:Ce.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:Ce.strictNullHandling,""===e||null==e)return r.plainObjects?Object.create(null):{};for(var i="string"==typeof e?function(e,t){for(var r={},i=e.split(t.delimiter,t.parameterLimit===1/0?void 0:t.parameterLimit),s=0;s<i.length;++s){var o,n,a=i[s],c=-1===a.indexOf("]=")?a.indexOf("="):a.indexOf("]=")+1;-1===c?(o=t.decoder(a),n=t.strictNullHandling?null:""):(o=t.decoder(a.slice(0,c)),n=t.decoder(a.slice(c+1))),Te.call(r,o)?r[o]=[].concat(r[o]).concat(n):r[o]=n}return r}(e,r):e,s=r.plainObjects?Object.create(null):{},o=Object.keys(i),n=0;n<o.length;++n){var a=o[n],c=Re(a,i[a],r);s=Me.merge(s,c,r)}return Me.compact(s)};const Fe=k("fpads:macros"),De=/\[([\s\S]+?)\]/g;class Macros{static run(e){try{return e()}catch(e){return void console.error(e)}}static merge(...e){return e.reduce((e,t)=>Object.assign(e,t),{})}static cast(e){return void 0===e?"":"function"==typeof e?encodeURIComponent(Macros.run(e)||""):"string"==typeof e?encodeURIComponent(e):"number"==typeof e||"boolean"==typeof e?e.toString():""}static normalize(e){return e.trim()}static process_obj(e,t,r){return Object.keys(e).reduce((i,s)=>{const o=Macros.process_str(s,t,r,!0),n=e[s];return null===n?(i[o]=n,i):"object"==typeof n?(i[o]=Macros.process_obj(n,t,r),i):"string"==typeof n?(i[o]=Macros.process_str(n,t,r),i):(console.error(new Error(`${n} at ${s} not a handled Macro type`)),i)},{})}static process_str(e,t,r,i=!1){return e.replace(t.pattern,(e,t)=>{const s=Macros.normalize(t);if(!(s in r)||void 0===r[s])return e;const o=r[s],n=i?o:Macros.cast(o);return Fe("Macro.replace(raw: %s, macro: %s, value: %s)",i,t,n),n})}constructor(e={},t=De){this.vars=e,this.pattern=t}fork(e={},t=this.pattern){const r=Macros.merge(this.vars,e);return new Macros(r,t)}compile(e,t={}){const r=Macros.merge(this.vars,t),[i,s]=e.split("?"),o=Oe(s||"",{strictNullHandling:!0,decoder:e=>e}),n=Ne(Macros.process_obj(o,this,r),{encode:!1,strictNullHandling:!0});return Macros.process_str(i,this,r,!0)+"?"+n}}function Ie(e,t={width:0,height:0}){let r,i;try{const e=document.createElement("a");e.href=r=window.location!=window.parent.location?document.referrer:document.location.href,i=e.hostname}catch(e){console.error(e)}const{width:s,height:o}=t,{video_source:n}=e||{},a=function(){const e=window;return"object"==typeof e.__flowplayerAdParameters?e.__flowplayerAdParameters:{}}();return Object.assign({random:Date.now(),page_url:r,domain:i,player_width:s,player_height:o,video_url:n,videourl:n},a)}Macros.patterns={BRACKETS:De,CURLY:/\{([\s\S]+?)\}/g,UNDERSCORE:/__([\s\S]+?)__/g};const Le="X-AD-CREATIVE-SIGNALING";class MediaTailor{constructor(e){this.ad={duration:0,currentTime:0},this.podInfo={totals:0,position:0},this.player=e,e.on([r,t,s,i,o],ke.bind(this))}onload(e,t){this.stream=this.compileMacros(e,t),e.setSrc(this.stream)}compileMacros(e,t){var r,i;const s=e.opts,o=Ie(void 0,{width:e.clientWidth,height:e.clientHeight});(s.duration||(null===(r=s.metadata)||void 0===r?void 0:r.duration))&&Object.assign(o,{media_duration:s.duration||(null===(i=s.metadata)||void 0===i?void 0:i.duration)});return new Macros(Object.assign({referrer_url:document.referrer,autoplay:!!e.opts.autoplay},e.opts.metadata,t.parameters,o)).compile(t.stream)}onNewSrc(e,t){t.src!==this.stream&&(this.activeCue=void 0,e.ssai=void 0)}getPreviousActiveAdStart(e,t){if(this.activeCue)return;const r=this.getAdCues(),i=r.slice().reverse().find(e=>e.endTime<t);if(!i||i.played)return;const s=r[r.indexOf(i)+1];return!s||t<s.startTime&&(t+.1<=s.startTime||s.played||e.paused)?this.findAdBreakStartCue(i).startTime:void 0}onId3(e){var t;if(e.played||e==this.activeCue)return;if((null===(t=e.value)||void 0===t?void 0:t.key)!==Le)return;if(this.activeCue)return X(v,this.player),this.activeCue.played=!0,this.activeCue=e,++this.podInfo.position,X(y,this.player,Object.assign(Object.assign({},this.ad),this.podInfo));const r=this.findAdBreakStartCue(e);if(r!==e)return this.player.currentTime=r.startTime;Math.abs(e.startTime-this.player.currentTime)>1&&(this.player.currentTime=e.startTime),this.activeCue=e,Z(this.player),this.setPodInfo(e),X(u,this.player),X(y,this.player,Object.assign(Object.assign({},this.ad),this.podInfo))}setPodInfo(e){const t=this.getAdCues().filter(t=>t.startTime>=e.startTime);let r=1;for(;r<=t.length-1&&!(t[r].startTime-t[r-1].endTime>1);)r++;return this.podInfo={totals:r,position:1},this.player.hasState("is-live")?this.ad_type=$.Midroll:e.startTime<=1?this.ad_type=$.Preroll:Math.abs(t[r-1].endTime-this.player.duration)<=1?this.ad_type=$.Postroll:this.ad_type=$.Midroll}findAdBreakStartCue(e){const t=this.getAdCues().filter(t=>t.startTime<=e.startTime).reverse();let r=e,i=1;for(;i<t.length&&!(t[i-1].startTime-t[i].endTime>.1);)r=t[i],i++;return r}getAdCues(){var e;const t=(null===(e=Array.from(this.player.textTracks).find(e=>"metadata"===e.kind))||void 0===e?void 0:e.cues)||[];return Array.from(t).slice().filter(e=>{var t;return(null===(t=e.value)||void 0===t?void 0:t.key)===Le})}getContentCurrentTime(e){if(!this.activeCue)return 0;let t=this.findAdBreakStartCue(this.activeCue).startTime;return this.getAdCues().filter(e=>e.endTime<t).forEach(e=>{t-=e.endTime-e.startTime}),t}getAdType(){return this.ad_type}getContentDuration(e){return 0}setContentCurrentTime(e,t){}}MediaTailor.Type="mediaTailor";const Be=(e,t)=>new(((e,t)=>{const r=e.get(t);if(!r)throw new Error(`no flowplayer component with the name ${t} exists`);const i=window.customElements.get(t);if(!i)throw new Error(`no default flowplayer component with the name ${t} exists`);const s=window.customElements.get(r);return"function"!=typeof s?i:s})(e._customElements,t))(e),qe=(e,t,r)=>{window.customElements.get(t)||window.customElements.define(t,r),e.customElements.get(t)||e.customElements.set(t,t)};class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class SSAIAdUi extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-ui",this.append(...this.fsIcons(),...this.player.createComponents(se,ne))}fsIcons(){return this.player.createComponents("flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon").map(e=>(e.onclick=()=>this.player.toggleFullScreen(),e))}}class SSAITimeline extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-timeline";const t=document.createElement("div");t.className="fp-ssai-progress fp-color",this.append(t),this.player.on(p,()=>{t.classList.remove("go"),"--ssai-percent-complete --ssai-percent-previous".split(" ").forEach(e=>this.style.setProperty(e,"0"))}),this.player.on(m,e=>{var r,i;const s=null===(r=e.detail)||void 0===r?void 0:r.currentTime,o=null===(i=e.detail)||void 0===i?void 0:i.duration;if(void 0===o||void 0===s)return;const n=s/o*100,a=t.style.getPropertyValue("--ssai-percent-complete");t.classList.remove("go"),t.style.setProperty("--ssai-percent-previous",a),t.style.setProperty("--ssai-percent-complete",n.toFixed(3)),t.classList.add("go")})}}function xe(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}function je(e){if(isNaN(e)||e>=Number.MAX_SAFE_INTEGER)return"";const t=e<0?"-":"";e=Math.round(Math.abs(e));const r=Math.floor(e/3600);let i=Math.floor(e/60);return e-=60*i,r>=1?(i-=60*r,t+r+":"+xe(i)+":"+xe(e)):t+xe(i)+":"+xe(e)}class SSAIControls extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-controls";const t=document.createElement("span");t.className="fp-ssai-elapsed";const r=document.createElement("span");r.className="fp-ssai-duration",this.player.on(m,e=>{const i=e.detail;i&&(t.textContent=je(i.currentTime||0),r.textContent=je(i.duration||0))}),this.append(...this.player.createComponents("flowplayer-control-buttons"),t,...this.player.createComponents(oe),r,...this.player.createComponents("flowplayer-volume-control"))}}class SSAIAdIndicator extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-indicator",this.player.on(y,e=>{var t,r;const i=null===(t=e.detail)||void 0===t?void 0:t.totals,s=null===(r=e.detail)||void 0===r?void 0:r.position;void 0!==i&&void 0!==s&&(this.textContent=`${this.player.i18n("ads.indicator","ADS")} ${s} / ${i}`)})}}var He,Ve=Object.freeze({__proto__:null,ID3:"ID3"});const Qe=((He=class ID3{init(e,t,r){r.textTracks.addEventListener("addtrack",({track:e})=>{if(e&&"metadata"===e.kind)return"id3"==e.id||"id3"==e.label||"com.apple.streaming"==e.inBandMetadataTrackDispatchType?function(e,t){t.mode="hidden",t.addEventListener("cuechange",async()=>{Array.from(t.activeCues||[]).forEach(async t=>{(function(e){return"object"==typeof e.value&&"string"==typeof e.value.key&&!!e.value.data})(t)&&e.emit("ID3",{cue:t})})})}(r,e):void 0})}}).pluginName="id3",He.events=Ve,He),Ke=e(window,Qe);var ze;const Ge=((ze=class Ssai{constructor(e,t){this.umd=e,this.providers=[],this.player=t,qe(e,ie,SSAIAdUi),qe(e,oe,SSAITimeline),qe(e,se,SSAIControls),qe(e,ne,SSAIAdIndicator)}init(e,t,r){const i=Be(r,ie);if(t.append(i),r.on(Ke.events.ID3,({detail:e})=>{var t,i,s;const o=null==e?void 0:e.cue;o&&(null===(s=null===(t=r.ssai)||void 0===t?void 0:(i=t.provider).onId3)||void 0===s||s.call(i,o))}),r.on("seeked",()=>function(e){if(e.opt("live"))return;if(!e.ssai)return;const{provider:t,state:r}=e.ssai;if(r.snapback)return r.snapback=!1;const i=a(e),s=t.getPreviousActiveAdStart(e,i);void 0!==s&&(r.snapback=!0,r.snapbackTime=i,c(e,s))}(r)),r.on("src",e=>{var t,i,s;r.setState(W,!1),null===(s=null===(i=null===(t=r.ssai)||void 0===t?void 0:t.provider)||void 0===i?void 0:i.onNewSrc)||void 0===s||s.call(i,r,e.detail)}),this.umd.extensions.find(e=>e.pluginName===Ke.pluginName))return;new Ke(this.umd,r).init(e,t,r)}onload(e,t,r,i){var s,o;null===(o=null===(s=r.ssai)||void 0===s?void 0:s.provider)||void 0===o||o.onload(r,i)}wants(e,t,r){return!!this.findProvider(t)}findProvider(e){let t;switch(e.type){case MediaTailor.Type:t=this.providers.find(e=>e instanceof MediaTailor)||new MediaTailor(this.player);break;case Dai.Type:t=this.providers.find(e=>e instanceof Dai)||new Dai(this.player);break;case Yospace.Type:Yospace.exists()&&(t=this.providers.find(e=>e instanceof Yospace)||new Yospace(this.player))}return t&&(this.player.ssai={provider:t,state:{snapback:!1}},this.providers.includes(t)||this.providers.push(t)),t}}).pluginName="ssai",ze.events=S,ze);return e(window,Ge)});
|
package/plugins/subtitles.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!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.subtitles=t())}(this,function(){"use strict";function e(e,t,s){const n=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;n.length;){if(null==e)return s;const t=n.shift();if("string"!=typeof t)return s;e=e[t]}return null==e?s:e}function t(e,t){e.innerHTML="",t.forEach(function(t){const s=document.createElement("pre");s.classList.add("fp-cue"),function(e,t){const s=e.style,n=t.size;s.setProperty("--caption-size",n.toString());const i=t.position;i&&"auto"!==i&&t?s.setProperty("--caption-position",i.toString()):s.removeProperty("--caption-position");const r="captions-align-"+t.align;Array.from(e.classList).forEach(function(s){s!=r&&("captions-vertical"==s&&t.vertical||s.startsWith("captions")&&e.classList.remove(s))}),e.classList.add(r),e.classList.toggle("captions-vertical",!!t.vertical)}(e,t),s.appendChild(t.getCueAsHTML()),e.appendChild(s)})}function s(){}const n="is-tv",i="has-menu-opened",r="is-source-processing",o="mount",a="click",l=(e,t)=>new(((e,t)=>{const s=e.get(t);if(!s)throw new Error(`no flowplayer component with the name ${t} exists`);const n=window.customElements.get(t);if(!n)throw new Error(`no default flowplayer component with the name ${t} exists`);const i=window.customElements.get(s);return"function"!=typeof i?n:i})(e._customElements,t))(e),c=(e,t,s)=>{window.customElements.get(t)||window.customElements.define(t,s),e.customElements.get(t)||e.customElements.set(t,t)};function u(e,t,s){const n=function(e,t){const s=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(s,"data",{get:()=>t}),s}(t,s);return e.dispatchEvent(n),e}function d(e,t){const s=e._customElements.get(t);return s&&e.root.querySelector(s)||void 0}!function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}();const p="flowplayer-subtitles-menu",m="flowplayer-subs-menu-icon",h="flowplayer-menu-back";class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const f="fp-menu",y="fp-menu-container",v="fp-on",b="fp-invis",g="details[open]."+y;class FlowplayerMenu extends FlowplayerComponent{constructor(e){super(e),this.player=e,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=E(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add(f),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(y),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(a,t=>{if(t.defaultPrevented)return;t.preventDefault();const s=this.menuContainer.open;s||(k(),document.active_menu=this.menuContainer),this.menuContainer.open=!s,e.root.classList.toggle(i,!s),this.summaryEle.setAttribute("aria-expanded",s?"false":"true")}),this.addEventListener("focusin",e=>{const t=e.target;t instanceof HTMLLIElement&&t.setAttribute("aria-selected","true")}),this.addEventListener("focusout",e=>{const t=e.target;t instanceof HTMLLIElement&&t.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(e){if(this.className=e.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=e.id||E()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=l(this.player,e.summaryIcon);t.setAttribute("tabindex",""),this.summaryEle.append(t)}e.menuTitle&&(this.menuTitle.textContent=e.menuTitle),this.menu.classList.toggle("fp-icons",!!e.icons),this.addEventListener(e.options_event,e=>{this.render(e.data)}),e.item_selected_event&&this.addEventListener(e.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(e,t){const s=document.createElement("li");s.setAttribute("role","menuitem"),s.setAttribute("aria-selected","false"),s.setAttribute("tabindex","0"),e.icon&&s.append(e.icon);const n=document.createElement("span");n.textContent=e.text,s.append(n),s.addEventListener(a,()=>{this.select_item(t),"function"==typeof e.onclick&&e.onclick()}),this.olEle.appendChild(s),e.selected&&this.select_item(t)}select_item(e){this.options.forEach((t,s)=>{t.classList.toggle(v,s===e)})}unselect_item(){this.options.forEach(e=>{e.classList.remove(v)})}toggle_visibility(e){this.classList.toggle(b,e),this.menu.style.setProperty("display",e?"none":"flex")}}function k(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const s=e.root.querySelector(g);s&&(s.open=!1,null===(t=s.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(i,!1))})}function E(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener(a,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(k(),this.active_menu=void 0)});const x=["255, 255, 255","255, 255, 0","0, 255, 0","0, 255, 255","0, 0, 255","255, 0, 255","255, 0, 0","0, 0, 0"],A=[.25,.5,.75,1,1.25,1.5,1.75,2,3,4],w=["White","Yellow","Green","Cyan","Blue","Magenta","Red","Black"],_=["Monospaced Serif","Proportional Serif","Monospaced Sans-Serif","Proportional Sans-Serif","Casual","Cursive"],T=["Courier New, monospace","serif","Andale Mono, Lucida Console, monospace","sans-serif","Comic Sans MS, Impact, fantasy","Monotype Corsiva, cursive"],C=["None","Drop shadow","Raised","Depressed","Outline"],O=["","rgb(34, 34, 34) 2px 2px 3px, rgb(34, 34, 34) 2px 2px 4px, rgb(34, 34, 34) 2px 2px 5px","rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px, rgb(34, 34, 34) 3px 3px","rgb(204, 204, 204) 1px 1px, rgb(204, 204, 204) 0px 1px, rgb(34, 34, 34) -1px -1px, rgb(34, 34, 34) 0px -1px","rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px"];class StyleOpt{constructor(e,t,s,n,i){this.player=e,this.labels=t,this.values=s,this.css_variable=n,this.default_value=i,this.selected=e._storage.getItem(n)||i}set selected(e){document.documentElement.style.setProperty(this.css_variable,e),this.player._storage.setItem(this.css_variable,e)}get selected(){return document.documentElement.style.getPropertyValue(this.css_variable)}}var S;!function(e){e[e.main=0]="main",e[e.tracks=1]="tracks",e[e.style=2]="style",e[e.styleOpt=3]="styleOpt"}(S||(S={}));class FlowplayerSubtitlesMenu extends FlowplayerMenu{constructor(e){if(super(e),this.state=S.main,this.selectedTrackIdx=-1,this.isTV=!1,this.styleOpts=function(e){return{[e.i18n("cc.properties.fontSize","Font size")]:new StyleOpt(e,A.map(e=>100*e+"%"),A.map(e=>100*e+"%"),"--fp-sub-font-size","100%"),[e.i18n("cc.properties.fontFamily","Font family")]:new StyleOpt(e,_.map(t=>e.i18n(`cc.fontFamily.${t}`,t)),T,"--fp-sub-font-family","sans-serif"),[e.i18n("cc.properties.fontColor","Font color")]:new StyleOpt(e,w.map(t=>e.i18n(`cc.colors.${t}`,t)),x,"--fp-sub-font-color",x[0]),[e.i18n("cc.properties.fontOpacity","Font opacity")]:new StyleOpt(e,A.flatMap(e=>e>1?[]:100*e+"%"),A.flatMap(e=>e>1?[]:e+""),"--fp-sub-font-opacity","1"),[e.i18n("cc.properties.backgroundColor","Background color")]:new StyleOpt(e,w.map(t=>e.i18n(`cc.colors.${t}`,t)),x,"--fp-sub-background-color",x[7]),[e.i18n("cc.properties.backgroundOpacity","Background opacity")]:new StyleOpt(e,A.flatMap(e=>e>1?[]:100*e+"%"),A.flatMap(e=>e>1?[]:e+""),"--fp-sub-background-opacity","0.5"),[e.i18n("cc.properties.characterEdgeStyle","Character edge style")]:new StyleOpt(e,C.map(t=>e.i18n(`cc.edgeStyle.${t}`,t)),O,"--fp-sub-edge-style","")}}(e),e.on(o,()=>{setTimeout(()=>this.isTV=e.hasState(n),0),this.classList.toggle("subs-native",!!e.opt("subtitles.native"))}),e.on(N.events.TRACK_UPDATED,e=>this.summaryEle.classList.toggle("fp-color-text",!!e.detail)),e.opt("subtitles.native"))return;const t=l(this.player,h);t.setAttribute("aria-label","Back to previous menu"),this.menuHeader.prepend(t),t.addEventListener("click",()=>this.navigateBack());const s=l(this.player,m);s.setAttribute("aria-label","Open style menu"),s.addEventListener("click",()=>this.createMenu(S.style)),this.menuHeader.insertBefore(s,this.menuTitle),this.summaryEle.addEventListener("click",()=>{this.menuContainer.open||this.createMenu(S.main)}),this.menu.addEventListener("click",e=>{(e.target===s||e.target===t||this.state!==S.main&&e.target!==this.closeEle)&&e.preventDefault()}),this.addEventListener(N.events.TRACKS,e=>{var t;this.tracks=e.detail,this.selectedTrackIdx=-1,this.toggle_visibility(!(null===(t=null==this?void 0:this.tracks)||void 0===t?void 0:t.length)),this.state===(this.isTV?S.tracks:S.main)&&this.createMenu(this.isTV?S.tracks:S.main)}),this.addEventListener(N.events.SWITCH,e=>{this.selectedTrackIdx=e.detail.selected_index,this.state===(this.isTV?S.tracks:S.main)&&this.select_item(this.selectedTrackIdx)}),this.player.addEventListener("tv-menu:will-open",()=>{var e;(null===(e=this.tracks)||void 0===e?void 0:e.length)&&this.createMenu(S.main)}),this.player.on(["tv-menu:will-close","keyboard:close:menus"],e=>{var t;this.state!==S.main&&(null===(t=document.activeElement)||void 0===t?void 0:t.closest(`.${f}`))===this.menu&&(this.navigateBack(),e.preventDefault())})}navigateBack(){switch(this.state){case S.style:case S.tracks:return this.createMenu(S.main);case S.styleOpt:return this.createMenu(S.style)}}getMenuTitle(){switch(this.state){case S.main:return this.player.i18n("cc.menu_title","Subtitles");case S.tracks:return this.player.i18n("cc.tracks","Tracks");case S.style:return this.player.i18n("cc.options","Options");default:return""}}createMenuOpts(e){switch(this.state){case S.main:return this.isTV?this.createTvMainMenuOpts():this.createTracksMenuOpts();case S.tracks:return this.createTracksMenuOpts();case S.style:return this.createStyleMenuOpts();case S.styleOpt:return e?this.createStylePropertyMenuOpts(this.styleOpts[e]):[]}}createMenu(e,t){var s;this.state=e,this.menu.classList.toggle("fp-submenu",e>0),this.menuTitle.textContent=t||this.getMenuTitle(),this.render(this.createMenuOpts(t)),null===(s=this.menu.querySelector("li"))||void 0===s||s.focus()}createTvMainMenuOpts(){return[{text:this.player.i18n("cc.tracks","Tracks"),onclick:this.createMenu.bind(this,S.tracks)},{text:this.player.i18n("cc.options","Options"),onclick:this.createMenu.bind(this,S.style)}]}createTracksMenuOpts(){return Array.isArray(null==this?void 0:this.tracks)?this.tracks.map((e,t)=>({text:e.text,onclick:()=>{e.onclick(),this.selectedTrackIdx=this.selectedTrackIdx===t?-1:t},selected:this.selectedTrackIdx===t})):[]}createStyleMenuOpts(){const e=Object.keys(this.styleOpts).map(e=>({text:e,onclick:this.createMenu.bind(this,S.styleOpt,e)}));return e.push({text:this.player.i18n("cc.reset","Reset"),onclick:()=>Object.values(this.styleOpts).forEach(e=>e.selected=e.default_value)}),e}createStylePropertyMenuOpts(e){return e.labels.map((t,s)=>({text:t,onclick:()=>{e.selected=e.values[s]},selected:s===e.values.indexOf(e.selected)}))}select_item(e){if(this.state!==S.style)return this.state===S.styleOpt?super.select_item(e):void this.options.forEach((t,s)=>{t.classList.toggle(v,s===e&&!t.classList.contains(v))})}}class FlowplayerIcon extends FlowplayerComponent{constructor(e,t){super(e),this.classList.add("fp-icon",t.name),t.title&&this.setAttribute("title",t.title),t.title&&this.setAttribute("aria-label",t.title),t.translation_key&&this.setAttribute("aria-label",e.i18n(t.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function L(e){return!document.fullscreenEnabled&&"function"==typeof e.webkitEnterFullScreen&&"function"==typeof e.webkitExitFullScreen}const M="tracks:text:updated",I="subs:tracks",F="subs:change",P="cues:parsed",H="tracks:text:all";var j,B=Object.freeze({__proto__:null,TRACK_UPDATED:M,TRACKS:I,SWITCH:F,CUES_PARSED:P,TEXT_TRACKS:H});function R(e,t){if(function(e){return Object.values(j).includes(e)}(t=t||j.Anonymous))return e instanceof HTMLVideoElement&&(e.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in e?e.crossOrigin=t:e.setAttribute("crossorigin",t),e}function V(e){const t=document.createElement("a");return t.href=e,t.origin}function D(e,t){const n=document.createElement("track");n.className="fp-track renderable",n.kind=t.kind||"captions",n.label=t.label||t.lang||"",n.lang=t.lang||"",n.id=["fp",t.lang].join("-");const i=n.track;return i.removeCue=s,"string"!=typeof t.crossorigin&&function(e,t){try{return e.src.startsWith("blob:"),V(e.src)!==V(t)}catch(e){return console.error(e),!0}}(e,t.src)&&(R(e),t.crossorigin=e.getAttribute("crossorigin")),"crossorigin"in t&&R(e,t.crossorigin),Object.keys(t).forEach(e=>{"default"!==e&&(n[e]=t[e])}),i.mode=t.default?"hidden":"disabled",e.appendChild(n),n}!function(e){e.Anonymous="anonymous",e.UseCredentials="use-credentials",e.Empty=""}(j||(j={}));const q={translation_key:"cc.menu_title",name:"fp-subtitles-menu"},z={name:"fp-menu-back"};var K;const N=((K=class Subtitles{constructor(e){c(e,p,FlowplayerSubtitlesMenu),c(e,m,class extends FlowplayerIcon{constructor(e){super(e,q)}}),c(e,h,class extends FlowplayerIcon{constructor(e){super(e,z)}})}init(i,a,c){var m,h;const f=l(c,p);f instanceof FlowplayerSubtitlesMenu&&f.setMenuAttrs({class:"fp-cc",summaryTitle:c.i18n("cc.button","CC"),menuTitle:c.i18n("cc.menu_title","Subtitles"),options_event:(null===(m=i.subtitles)||void 0===m?void 0:m.native)?I:void 0,item_selected_event:(null===(h=i.subtitles)||void 0===h?void 0:h.native)?F:void 0});const y=function(e){const t=document.createElement("div");return t.classList.add("fp-captions"),t.ontouchend=t=>e.emit(t.type),t.onclick=t=>e.emit(t.type),t}(c);let v,b=[],g=[];function k(){return Array.from(c.textTracks).filter(e=>~["captions","subtitles","descriptions"].indexOf(e.kind)&&!e.removed&&e.label)}function E(){return k().find(e=>e.is_active)}function x(e){Array.from(e.querySelectorAll("track")).forEach(t=>{["captions","subtitles","descriptions"].includes(t.kind)&&e.removeChild(t)})}function A(e,t,s){u(t,I,s.map(function(t){return{text:t.label,onclick:w.bind(0,e,t)}}));const n=E();return n?k().find(e=>e===n)?void u(t,F,{selected_index:s.indexOf(n)}):_():e.emit(M)}function w(e,t){var s,n;if(t==E())return _();_(),t.is_hls_embedded&&"number"==typeof t.track_id&&e.hls&&(e.hls.subtitleTrack=t.track_id),t.mode=(null===(s=e.opts.subtitles)||void 0===s?void 0:s.native)?"showing":"hidden",t.is_active=!0,e.emit(M,t),(null===(n=e.opts.subtitles)||void 0===n?void 0:n.native)||e.emit("cuechange",{track:t})}function _(){const e=E();e&&(c.emit(M),e.mode="disabled",e.is_active=!1,t(y,[]))}!function(e){if(!L(e))return;e.on("webkitbeginfullscreen",()=>{const e=E();e&&(e.mode="showing")}),e.on("webkitendfullscreen",()=>{var t;const s=k().find(e=>"showing"===e.mode);s&&!(null===(t=e.opts.subtitles)||void 0===t?void 0:t.native)&&(s.mode="hidden"),s!==E()&&(s?w(e,s):_(),u(f,F,{selected_index:s?g.indexOf(s):-1}))})}(c),c.on(o,function(){var e,t;const s=d(c,"flowplayer-control");if(!s)return null===(e=d(c,"flowplayer-ui"))||void 0===e?void 0:e.appendChild(y);s.insertAdjacentElement("beforebegin",y),null===(t=c.hasState(n)?d(c,"flowplayer-tv-menu"):s)||void 0===t||t.append(f)}),c.on("config",function(e){var t,s;const n=null===(s=null===(t=e.data)||void 0===t?void 0:t.subtitles)||void 0===s?void 0:s.tracks;n&&b!==n&&(b=n,x(c),g=k(),A(c,f,g),b.forEach(e=>D(c,e)))}),c.on(H,e=>{const t=e.detail.tracks;t!==v&&(v=t,g=g.flatMap(e=>e.is_hls_embedded?(e.removed=!0,[]):e),A(c,f,g),t.filter(e=>{var t,s;return~["subtitles","captions"].indexOf((null==e?void 0:e.kind)||(null===(s=null===(t=null==e?void 0:e.subtitleTrack)||void 0===t?void 0:t.type)||void 0===s?void 0:s.toLocaleLowerCase())||"")}).forEach(e=>{var t,n,i,r,o,a,l;const u=c.addTextTrack("captions"===e.kind?"captions":"subtitles",(null===(t=e.subtitleTrack)||void 0===t?void 0:t.name)||e.label,null===(n=e.subtitleTrack)||void 0===n?void 0:n.lang);u.is_hls_embedded=!0,u.default=void 0!==(null===(i=e.subtitleTrack)||void 0===i?void 0:i.default)?null===(r=e.subtitleTrack)||void 0===r?void 0:r.default:e.default,u.track_id=null!==(a=null===(o=e.subtitleTrack)||void 0===o?void 0:o.id)&&void 0!==a?a:e._id,u.mode=u.default?"hidden":"disabled",u.removeCue=s,u.attr=null===(l=e.subtitleTrack)||void 0===l?void 0:l.attrs}))}),c.on(P,e=>{const t=e.detail,s=g.find(e=>e.is_hls_embedded&&!e.removed&&(e.default&&"default"===t.track||e.track_id===t.track||"subtitles"+e.track_id===t.track||"captions"+e.track_id===t.track));s&&t.cues.forEach(e=>s.addCue(e))}),c.textTracks.addEventListener("addtrack",()=>{const e=k();if(g.length===e.length&&g.every((t,s)=>t===e[s]))return;let t=E();if(e.map(function(e){return~["showing","hidden"].indexOf(e.mode)&&(t=e,e.mode="disabled",e.is_active=!1),e.oncuechange=function(t){var s;if(!(e===E()||L(c)&&c.hasState("is-fullscreen")))return e.mode="disabled";(null===(s=i.subtitles)||void 0===s?void 0:s.native)||c.emit(t.type,{track:t.target})},e}),u(f,I,e.map(function(e){return{text:e.label,onclick:w.bind(0,c,e)}})),g=e,!t)return _();w(c,t),u(f,F,{selected_index:g.indexOf(t)})}),c.on("cuechange",function(s){var n;const i=null===(n=s.data)||void 0===n?void 0:n.track;if(!i||!["captions","subtitles","descriptions"].includes(i.kind))return;const r=Array.from(e(i,"activeCues",[])).filter((e,t,s)=>t===s.findIndex(t=>e.id===t.id)).sort((e,t)=>"number"!=typeof e.line||"number"!=typeof t.line?0:e.line-t.line);t(y,r)}),c.on(["playlist/advance","src"],e=>{t(y,[]),c.currentSrc&&("src"===e.type&&["is-playlist",r].some(e=>c.root.classList.contains(e))||(delete c.opts.subtitles,x(c),b=[],_(),g=[],v=[],k().forEach(e=>e.removed=!0),u(f,I,[])))})}}).pluginName="subtitles",K.events=B,K);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 s=e.flowplayer;return"function"==typeof s?(s(t),t):(Array.isArray(s.extensions)||(s.extensions=[]),~s.extensions.indexOf(t)||s.extensions.push(t),t)}(window,N)});
|
|
1
|
+
!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.subtitles=t())}(this,function(){"use strict";function e(e,t,s){const i=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;i.length;){if(null==e)return s;const t=i.shift();if("string"!=typeof t)return s;e=e[t]}return null==e?s:e}function t(e,t){e.innerHTML="",t.forEach(function(t){const s=document.createElement("pre");s.classList.add("fp-cue"),function(e,t){const s=e.style,i=t.size;s.setProperty("--caption-size",i.toString());const n=t.position;n&&"auto"!==n&&t?s.setProperty("--caption-position",n.toString()):s.removeProperty("--caption-position");const r="captions-align-"+t.align;Array.from(e.classList).forEach(function(s){s!=r&&("captions-vertical"==s&&t.vertical||s.startsWith("captions")&&e.classList.remove(s))}),e.classList.add(r),e.classList.toggle("captions-vertical",!!t.vertical)}(e,t),s.appendChild(t.getCueAsHTML()),e.appendChild(s)})}function s(){}const i="is-tv",n="has-menu-opened",r="is-source-processing",o="mount",a="click",l=(e,t)=>new(((e,t)=>{const s=e.get(t);if(!s)throw new Error(`no flowplayer component with the name ${t} exists`);const i=window.customElements.get(t);if(!i)throw new Error(`no default flowplayer component with the name ${t} exists`);const n=window.customElements.get(s);return"function"!=typeof n?i:n})(e._customElements,t))(e),c=(e,t,s)=>{window.customElements.get(t)||window.customElements.define(t,s),e.customElements.get(t)||e.customElements.set(t,t)};function u(e,t,s){const i=function(e,t){const s=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(s,"data",{get:()=>t}),s}(t,s);return e.dispatchEvent(i),e}function d(e,t){const s=e._customElements.get(t);return s&&e.root.querySelector(s)||void 0}!function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}();const p="flowplayer-subtitles-menu",m="flowplayer-subs-menu-icon",h="flowplayer-menu-back";class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const f="fp-menu",y="fp-menu-container",v="fp-on",b="fp-invis",g="details[open]."+y;class FlowplayerMenu extends FlowplayerComponent{constructor(e){super(e),this.player=e,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=E(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add(f),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(y),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(a,t=>{if(t.defaultPrevented)return;t.preventDefault();const s=this.menuContainer.open;s||(k(),document.active_menu=this.menuContainer),this.menuContainer.open=!s,e.root.classList.toggle(n,!s),this.summaryEle.setAttribute("aria-expanded",s?"false":"true")}),this.addEventListener("focusin",e=>{e.target;HTMLLIElement}),this.addEventListener("focusout",e=>{e.target;HTMLLIElement}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(e){if(this.className=e.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=e.id||E()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=l(this.player,e.summaryIcon);t.setAttribute("tabindex",""),this.summaryEle.append(t)}e.menuTitle&&(this.menuTitle.textContent=e.menuTitle),this.menu.classList.toggle("fp-icons",!!e.icons),this.addEventListener(e.options_event,e=>{this.render(e.data)}),e.item_selected_event&&this.addEventListener(e.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(e,t){const s=document.createElement("li");s.setAttribute("tabindex","0"),e.icon&&s.append(e.icon);const i=document.createElement("span");i.textContent=e.text,s.append(i),this.olEle.appendChild(s),e.isButton?(s.setAttribute("role","menuitem"),s.addEventListener(a,()=>{"function"==typeof e.onclick&&e.onclick()})):(s.setAttribute("role","menuitemradio"),s.setAttribute("aria-checked","false"),s.addEventListener(a,()=>{this.select_item(t),"function"==typeof e.onclick&&e.onclick()}),e.selected&&this.select_item(t))}select_item(e){var t;if(!(null===(t=this.options[e])||void 0===t?void 0:t.hasAttribute("aria-checked")))throw new Error("Cannot select a button-only item");this.options.forEach((t,s)=>{t.hasAttribute("aria-checked")&&(t.classList.toggle(v,s===e),t.setAttribute("aria-checked",s===e?"true":"false"))})}unselect_item(){this.options.forEach(e=>{e.classList.remove(v),e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked","false")})}toggle_visibility(e){this.classList.toggle(b,e),this.menu.style.setProperty("display",e?"none":"flex")}}function k(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const s=e.root.querySelector(g);s&&(s.open=!1,null===(t=s.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(n,!1))})}function E(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener(a,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(k(),this.active_menu=void 0)});const x=["255, 255, 255","255, 255, 0","0, 255, 0","0, 255, 255","0, 0, 255","255, 0, 255","255, 0, 0","0, 0, 0"],A=[.25,.5,.75,1,1.25,1.5,1.75,2,3,4],w=["White","Yellow","Green","Cyan","Blue","Magenta","Red","Black"],_=["Monospaced Serif","Proportional Serif","Monospaced Sans-Serif","Proportional Sans-Serif","Casual","Cursive"],T=["Courier New, monospace","serif","Andale Mono, Lucida Console, monospace","sans-serif","Comic Sans MS, Impact, fantasy","Monotype Corsiva, cursive"],C=["None","Drop shadow","Raised","Depressed","Outline"],O=["","rgb(34, 34, 34) 2px 2px 3px, rgb(34, 34, 34) 2px 2px 4px, rgb(34, 34, 34) 2px 2px 5px","rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px, rgb(34, 34, 34) 3px 3px","rgb(204, 204, 204) 1px 1px, rgb(204, 204, 204) 0px 1px, rgb(34, 34, 34) -1px -1px, rgb(34, 34, 34) 0px -1px","rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px"];class StyleOpt{constructor(e,t,s,i,n){this.player=e,this.labels=t,this.values=s,this.css_variable=i,this.default_value=n,this.selected=e._storage.getItem(i)||n}set selected(e){document.documentElement.style.setProperty(this.css_variable,e),this.player._storage.setItem(this.css_variable,e)}get selected(){return document.documentElement.style.getPropertyValue(this.css_variable)}}var S;!function(e){e[e.main=0]="main",e[e.tracks=1]="tracks",e[e.style=2]="style",e[e.styleOpt=3]="styleOpt"}(S||(S={}));class FlowplayerSubtitlesMenu extends FlowplayerMenu{constructor(e){if(super(e),this.state=S.main,this.selectedTrackIdx=-1,this.isTV=!1,this.styleOpts=function(e){return{[e.i18n("cc.properties.fontSize","Font size")]:new StyleOpt(e,A.map(e=>100*e+"%"),A.map(e=>100*e+"%"),"--fp-sub-font-size","100%"),[e.i18n("cc.properties.fontFamily","Font family")]:new StyleOpt(e,_.map(t=>e.i18n(`cc.fontFamily.${t}`,t)),T,"--fp-sub-font-family","sans-serif"),[e.i18n("cc.properties.fontColor","Font color")]:new StyleOpt(e,w.map(t=>e.i18n(`cc.colors.${t}`,t)),x,"--fp-sub-font-color",x[0]),[e.i18n("cc.properties.fontOpacity","Font opacity")]:new StyleOpt(e,A.flatMap(e=>e>1?[]:100*e+"%"),A.flatMap(e=>e>1?[]:e+""),"--fp-sub-font-opacity","1"),[e.i18n("cc.properties.backgroundColor","Background color")]:new StyleOpt(e,w.map(t=>e.i18n(`cc.colors.${t}`,t)),x,"--fp-sub-background-color",x[7]),[e.i18n("cc.properties.backgroundOpacity","Background opacity")]:new StyleOpt(e,A.flatMap(e=>e>1?[]:100*e+"%"),A.flatMap(e=>e>1?[]:e+""),"--fp-sub-background-opacity","0.5"),[e.i18n("cc.properties.characterEdgeStyle","Character edge style")]:new StyleOpt(e,C.map(t=>e.i18n(`cc.edgeStyle.${t}`,t)),O,"--fp-sub-edge-style","")}}(e),e.on(o,()=>{setTimeout(()=>this.isTV=e.hasState(i),0),this.classList.toggle("subs-native",!!e.opt("subtitles.native"))}),e.on(N.events.TRACK_UPDATED,e=>this.summaryEle.classList.toggle("fp-color-text",!!e.detail)),e.opt("subtitles.native"))return;const t=l(this.player,h);t.setAttribute("aria-label","Back to previous menu"),this.menuHeader.prepend(t),t.addEventListener("click",()=>this.navigateBack());const s=l(this.player,m);s.setAttribute("aria-label","Open style menu"),s.addEventListener("click",()=>this.createMenu(S.style)),this.menuHeader.insertBefore(s,this.menuTitle),this.summaryEle.addEventListener("click",()=>{this.menuContainer.open||this.createMenu(S.main)}),this.menu.addEventListener("click",e=>{(e.target===s||e.target===t||this.state!==S.main&&e.target!==this.closeEle)&&e.preventDefault()}),this.addEventListener(N.events.TRACKS,e=>{var t;this.tracks=e.detail,this.selectedTrackIdx=-1,this.toggle_visibility(!(null===(t=null==this?void 0:this.tracks)||void 0===t?void 0:t.length)),this.state===(this.isTV?S.tracks:S.main)&&this.createMenu(this.isTV?S.tracks:S.main)}),this.addEventListener(N.events.SWITCH,e=>{this.selectedTrackIdx=e.detail.selected_index,this.state===(this.isTV?S.tracks:S.main)&&this.select_item(this.selectedTrackIdx)}),this.player.addEventListener("tv-menu:will-open",()=>{var e;(null===(e=this.tracks)||void 0===e?void 0:e.length)&&this.createMenu(S.main)}),this.player.on(["tv-menu:will-close","keyboard:close:menus"],e=>{var t;this.state!==S.main&&(null===(t=document.activeElement)||void 0===t?void 0:t.closest(`.${f}`))===this.menu&&(this.navigateBack(),e.preventDefault())})}navigateBack(){switch(this.state){case S.style:case S.tracks:return this.createMenu(S.main);case S.styleOpt:return this.createMenu(S.style)}}getMenuTitle(){switch(this.state){case S.main:return this.player.i18n("cc.menu_title","Subtitles");case S.tracks:return this.player.i18n("cc.tracks","Tracks");case S.style:return this.player.i18n("cc.options","Options");default:return""}}createMenuOpts(e){switch(this.state){case S.main:return this.isTV?this.createTvMainMenuOpts():this.createTracksMenuOpts();case S.tracks:return this.createTracksMenuOpts();case S.style:return this.createStyleMenuOpts();case S.styleOpt:return e?this.createStylePropertyMenuOpts(this.styleOpts[e]):[]}}createMenu(e,t){var s;this.state=e,this.menu.classList.toggle("fp-submenu",e>0),this.menuTitle.textContent=t||this.getMenuTitle(),this.render(this.createMenuOpts(t)),null===(s=this.menu.querySelector("li"))||void 0===s||s.focus()}createTvMainMenuOpts(){return[{text:this.player.i18n("cc.tracks","Tracks"),onclick:this.createMenu.bind(this,S.tracks)},{text:this.player.i18n("cc.options","Options"),onclick:this.createMenu.bind(this,S.style)}]}createTracksMenuOpts(){return Array.isArray(null==this?void 0:this.tracks)?this.tracks.map((e,t)=>({text:e.text,onclick:()=>{e.onclick(),this.selectedTrackIdx=this.selectedTrackIdx===t?-1:t},selected:this.selectedTrackIdx===t})):[]}createStyleMenuOpts(){const e=Object.keys(this.styleOpts).map(e=>({text:e,onclick:this.createMenu.bind(this,S.styleOpt,e)}));return e.push({text:this.player.i18n("cc.reset","Reset"),onclick:()=>Object.values(this.styleOpts).forEach(e=>e.selected=e.default_value)}),e}createStylePropertyMenuOpts(e){return e.labels.map((t,s)=>({text:t,onclick:()=>{e.selected=e.values[s]},selected:s===e.values.indexOf(e.selected)}))}select_item(e){if(this.state!==S.style)return this.state===S.styleOpt?super.select_item(e):void this.options.forEach((t,s)=>{t.classList.toggle(v,s===e&&!t.classList.contains(v))})}}class FlowplayerIcon extends FlowplayerComponent{constructor(e,t){super(e),this.classList.add("fp-icon",t.name),t.title&&this.setAttribute("title",t.title),t.title&&this.setAttribute("aria-label",t.title),t.translation_key&&this.setAttribute("aria-label",e.i18n(t.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function L(e){return!document.fullscreenEnabled&&"function"==typeof e.webkitEnterFullScreen&&"function"==typeof e.webkitExitFullScreen}const M="tracks:text:updated",I="subs:tracks",F="subs:change",P="cues:parsed",H="tracks:text:all";var B,j=Object.freeze({__proto__:null,TRACK_UPDATED:M,TRACKS:I,SWITCH:F,CUES_PARSED:P,TEXT_TRACKS:H});function R(e,t){if(function(e){return Object.values(B).includes(e)}(t=t||B.Anonymous))return e instanceof HTMLVideoElement&&(e.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in e?e.crossOrigin=t:e.setAttribute("crossorigin",t),e}function V(e){const t=document.createElement("a");return t.href=e,t.origin}function D(e,t){const i=document.createElement("track");i.className="fp-track renderable",i.kind=t.kind||"captions",i.label=t.label||t.lang||"",i.lang=t.lang||"",i.id=["fp",t.lang].join("-");const n=i.track;return n.removeCue=s,"string"!=typeof t.crossorigin&&function(e,t){try{return e.src.startsWith("blob:"),V(e.src)!==V(t)}catch(e){return console.error(e),!0}}(e,t.src)&&(R(e),t.crossorigin=e.getAttribute("crossorigin")),"crossorigin"in t&&R(e,t.crossorigin),Object.keys(t).forEach(e=>{"default"!==e&&(i[e]=t[e])}),n.mode=t.default?"hidden":"disabled",e.appendChild(i),i}!function(e){e.Anonymous="anonymous",e.UseCredentials="use-credentials",e.Empty=""}(B||(B={}));const q={translation_key:"cc.menu_title",name:"fp-subtitles-menu"},z={name:"fp-menu-back"};var K;const N=((K=class Subtitles{constructor(e){c(e,p,FlowplayerSubtitlesMenu),c(e,m,class extends FlowplayerIcon{constructor(e){super(e,q)}}),c(e,h,class extends FlowplayerIcon{constructor(e){super(e,z)}})}init(n,a,c){var m,h;const f=l(c,p);f instanceof FlowplayerSubtitlesMenu&&f.setMenuAttrs({class:"fp-cc",summaryTitle:c.i18n("cc.button","CC"),menuTitle:c.i18n("cc.menu_title","Subtitles"),options_event:(null===(m=n.subtitles)||void 0===m?void 0:m.native)?I:void 0,item_selected_event:(null===(h=n.subtitles)||void 0===h?void 0:h.native)?F:void 0});const y=function(e){const t=document.createElement("div");return t.classList.add("fp-captions"),t.ontouchend=t=>e.emit(t.type),t.onclick=t=>e.emit(t.type),t}(c);let v,b=[],g=[];function k(){return Array.from(c.textTracks).filter(e=>~["captions","subtitles","descriptions"].indexOf(e.kind)&&!e.removed&&e.label)}function E(){return k().find(e=>e.is_active)}function x(e){Array.from(e.querySelectorAll("track")).forEach(t=>{["captions","subtitles","descriptions"].includes(t.kind)&&e.removeChild(t)})}function A(e,t,s){u(t,I,s.map(function(t){return{text:t.label,onclick:w.bind(0,e,t)}}));const i=E();return i?k().find(e=>e===i)?void u(t,F,{selected_index:s.indexOf(i)}):_():e.emit(M)}function w(e,t){var s,i;if(t==E())return _();_(),t.is_hls_embedded&&"number"==typeof t.track_id&&e.hls&&(e.hls.subtitleTrack=t.track_id),t.mode=(null===(s=e.opts.subtitles)||void 0===s?void 0:s.native)?"showing":"hidden",t.is_active=!0,e.emit(M,t),(null===(i=e.opts.subtitles)||void 0===i?void 0:i.native)||e.emit("cuechange",{track:t})}function _(){const e=E();e&&(c.emit(M),e.mode="disabled",e.is_active=!1,t(y,[]))}!function(e){if(!L(e))return;e.on("webkitbeginfullscreen",()=>{const e=E();e&&(e.mode="showing")}),e.on("webkitendfullscreen",()=>{var t;const s=k().find(e=>"showing"===e.mode);s&&!(null===(t=e.opts.subtitles)||void 0===t?void 0:t.native)&&(s.mode="hidden"),s!==E()&&(s?w(e,s):_(),u(f,F,{selected_index:s?g.indexOf(s):-1}))})}(c),c.on(o,function(){var e,t;const s=d(c,"flowplayer-control");if(!s)return null===(e=d(c,"flowplayer-ui"))||void 0===e?void 0:e.appendChild(y);s.insertAdjacentElement("beforebegin",y),null===(t=c.hasState(i)?d(c,"flowplayer-tv-menu"):s)||void 0===t||t.append(f)}),c.on("config",function(e){var t,s;const i=null===(s=null===(t=e.data)||void 0===t?void 0:t.subtitles)||void 0===s?void 0:s.tracks;i&&b!==i&&(b=i,x(c),g=k(),A(c,f,g),b.forEach(e=>D(c,e)))}),c.on(H,e=>{const t=e.detail.tracks;t!==v&&(v=t,g=g.flatMap(e=>e.is_hls_embedded?(e.removed=!0,[]):e),A(c,f,g),t.filter(e=>{var t,s;return~["subtitles","captions"].indexOf((null==e?void 0:e.kind)||(null===(s=null===(t=null==e?void 0:e.subtitleTrack)||void 0===t?void 0:t.type)||void 0===s?void 0:s.toLocaleLowerCase())||"")}).forEach(e=>{var t,i,n,r,o,a,l;const u=c.addTextTrack("captions"===e.kind?"captions":"subtitles",(null===(t=e.subtitleTrack)||void 0===t?void 0:t.name)||e.label,null===(i=e.subtitleTrack)||void 0===i?void 0:i.lang);u.is_hls_embedded=!0,u.default=void 0!==(null===(n=e.subtitleTrack)||void 0===n?void 0:n.default)?null===(r=e.subtitleTrack)||void 0===r?void 0:r.default:e.default,u.track_id=null!==(a=null===(o=e.subtitleTrack)||void 0===o?void 0:o.id)&&void 0!==a?a:e._id,u.mode=u.default?"hidden":"disabled",u.removeCue=s,u.attr=null===(l=e.subtitleTrack)||void 0===l?void 0:l.attrs}))}),c.on(P,e=>{const t=e.detail,s=g.find(e=>e.is_hls_embedded&&!e.removed&&(e.default&&"default"===t.track||e.track_id===t.track||"subtitles"+e.track_id===t.track||"captions"+e.track_id===t.track));s&&t.cues.forEach(e=>s.addCue(e))}),c.textTracks.addEventListener("addtrack",()=>{const e=k();if(g.length===e.length&&g.every((t,s)=>t===e[s]))return;let t=E();if(e.map(function(e){return~["showing","hidden"].indexOf(e.mode)&&(t=e,e.mode="disabled",e.is_active=!1),e.oncuechange=function(t){var s;if(!(e===E()||L(c)&&c.hasState("is-fullscreen")))return e.mode="disabled";(null===(s=n.subtitles)||void 0===s?void 0:s.native)||c.emit(t.type,{track:t.target})},e}),u(f,I,e.map(function(e){return{text:e.label,onclick:w.bind(0,c,e)}})),g=e,!t)return _();w(c,t),u(f,F,{selected_index:g.indexOf(t)})}),c.on("cuechange",function(s){var i;const n=null===(i=s.data)||void 0===i?void 0:i.track;if(!n||!["captions","subtitles","descriptions"].includes(n.kind))return;const r=Array.from(e(n,"activeCues",[])).filter((e,t,s)=>t===s.findIndex(t=>e.id===t.id)).sort((e,t)=>"number"!=typeof e.line||"number"!=typeof t.line?0:e.line-t.line);t(y,r)}),c.on(["playlist/advance","src"],e=>{t(y,[]),c.currentSrc&&("src"===e.type&&["is-playlist",r].some(e=>c.root.classList.contains(e))||(delete c.opts.subtitles,x(c),b=[],_(),g=[],v=[],k().forEach(e=>e.removed=!0),u(f,I,[])))})}}).pluginName="subtitles",K.events=j,K);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 s=e.flowplayer;return"function"==typeof s?(s(t),t):(Array.isArray(s.extensions)||(s.extensions=[]),~s.extensions.indexOf(t)||s.extensions.push(t),t)}(window,N)});
|
package/plugins/vtsel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!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.vtsel=t())}(this,function(){"use strict";const e=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const s=window.customElements.get(t);if(!s)throw new Error(`no default flowplayer component with the name ${t} exists`);const i=window.customElements.get(n);return"function"!=typeof i?s:i})(e._customElements,t))(e),t="flowplayer-video-menu";class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const n="click",s="videoTracks",i="tracks:video:select",r="has-menu-opened",a="fp-menu-container",o="fp-on",l="fp-invis",c="details[open]."+a;class FlowplayerMenu extends FlowplayerComponent{constructor(e){super(e),this.player=e,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=d(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(a),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(n,t=>{if(t.defaultPrevented)return;t.preventDefault();const n=this.menuContainer.open;n||(u(),document.active_menu=this.menuContainer),this.menuContainer.open=!n,e.root.classList.toggle(r,!n),this.summaryEle.setAttribute("aria-expanded",n?"false":"true")}),this.addEventListener("focusin",e=>{const t=e.target;t instanceof HTMLLIElement&&t.setAttribute("aria-selected","true")}),this.addEventListener("focusout",e=>{const t=e.target;t instanceof HTMLLIElement&&t.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(t){if(this.className=t.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=t.id||d()),this.summaryEle.setAttribute("aria-label",t.menuTitle||"Menu"),t.summaryTitle&&(this.summaryEle.textContent=t.summaryTitle),t.summaryIcon){const n=e(this.player,t.summaryIcon);n.setAttribute("tabindex",""),this.summaryEle.append(n)}t.menuTitle&&(this.menuTitle.textContent=t.menuTitle),this.menu.classList.toggle("fp-icons",!!t.icons),this.addEventListener(t.options_event,e=>{this.render(e.data)}),t.item_selected_event&&this.addEventListener(t.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(e,t){const s=document.createElement("li");s.setAttribute("role","menuitem"),s.setAttribute("aria-selected","false"),s.setAttribute("tabindex","0"),e.icon&&s.append(e.icon);const i=document.createElement("span");i.textContent=e.text,s.append(i),s.addEventListener(n,()=>{this.select_item(t),"function"==typeof e.onclick&&e.onclick()}),this.olEle.appendChild(s),e.selected&&this.select_item(t)}select_item(e){this.options.forEach((t,n)=>{t.classList.toggle(o,n===e)})}unselect_item(){this.options.forEach(e=>{e.classList.remove(o)})}toggle_visibility(e){this.classList.toggle(l,e),this.menu.style.setProperty("display",e?"none":"flex")}}function u(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const n=e.root.querySelector(c);n&&(n.open=!1,null===(t=n.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(r,!1))})}function d(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener(n,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(u(),this.active_menu=void 0)});function m(e,t,n){const s=function(e,t){const n=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(n,"data",{get:()=>t}),n}(t,n);return e.dispatchEvent(s),e}var p;!function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}(),function(e){e[e.Idle=0]="Idle",e[e.Receiving=1]="Receiving",e[e.Starting=2]="Starting"}(p||(p={}));var h=function(e){var t={exports:{}};return e(t,t.exports),t.exports}(function(e,t){var n,s,i,r,a;n=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,s=/^(?=([^\/?#]*))\1([^]*)$/,i=/(?:\/|^)\.(?=\/)/g,r=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,a={buildAbsoluteURL:function(e,t,n){if(n=n||{},e=e.trim(),!(t=t.trim())){if(!n.alwaysNormalize)return e;var i=a.parseURL(e);if(!i)throw new Error("Error trying to parse base URL.");return i.path=a.normalizePath(i.path),a.buildURLFromParts(i)}var r=a.parseURL(t);if(!r)throw new Error("Error trying to parse relative URL.");if(r.scheme)return n.alwaysNormalize?(r.path=a.normalizePath(r.path),a.buildURLFromParts(r)):t;var o=a.parseURL(e);if(!o)throw new Error("Error trying to parse base URL.");if(!o.netLoc&&o.path&&"/"!==o.path[0]){var l=s.exec(o.path);o.netLoc=l[1],o.path=l[2]}o.netLoc&&!o.path&&(o.path="/");var c={scheme:o.scheme,netLoc:r.netLoc,path:null,params:r.params,query:r.query,fragment:r.fragment};if(!r.netLoc&&(c.netLoc=o.netLoc,"/"!==r.path[0]))if(r.path){var u=o.path,d=u.substring(0,u.lastIndexOf("/")+1)+r.path;c.path=a.normalizePath(d)}else c.path=o.path,r.params||(c.params=o.params,r.query||(c.query=o.query));return null===c.path&&(c.path=n.alwaysNormalize?a.normalizePath(r.path):r.path),a.buildURLFromParts(c)},parseURL:function(e){var t=n.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(i,"");e.length!==(e=e.replace(r,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}},e.exports=a});const f=/#EXT-X-MEDIA:(.*)/g,v=/(.+?)=(".*?"|.*?)(?:,|$)/g;function y(e,t,n,s){let r=n;const a={label:e,default:n,data:s||[]};return Object.defineProperty(a,"selected",{get:()=>r,set(e){var n;"boolean"==typeof e&&r!==e&&(r&&1===(null===(n=t.tracks)||void 0===n?void 0:n.filter(e=>e.selected).length)||(r=e,e&&t.emit(i,{track:a})))}})}class AttrList{constructor(e){"string"==typeof e&&(e=AttrList.parseAttrList(e)),Object.keys(e).forEach(t=>{e.hasOwnProperty(t)&&("X-"===t.substring(0,2)&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(t)),this[t]=e[t])})}bool(e){return"YES"===this[e]}static parseAttrList(e){let t;const n={};for(v.lastIndex=0;null!==(t=v.exec(e));){let e=t[2];0===e.indexOf('"')&&e.lastIndexOf('"')===e.length-1&&(e=e.slice(1,-1));n[t[1].trim()]=e}return n}}const E="parse:video:tracks",g="dash:video:tracks",b=i,L=s;var A,w=Object.freeze({__proto__:null,PARSE_TRACKS:E,DASH_VIDEO_TRACKS:g,VIDEO_TRACK_SELECT:b,VIDEO_TRACKS:L,TRACKS:"video:tracks",SWITCH:"video:update"});const x=((A=class Vtsel{constructor(e){((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,t,class extends FlowplayerMenu{})}init(n,r,a){var o;const l=e(a,t);l instanceof FlowplayerMenu&&l.setMenuAttrs({summaryTitle:a.i18n("vtsel.button_txt","Video"),menuTitle:a.i18n("vtsel.menu_title","Video Track"),class:"fp-vsel",options_event:A.events.TRACKS,item_selected_event:A.events.SWITCH}),a.on("mount",function(){var e;null===(e=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(a,a.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))||void 0===e||e.append(l)}),a.on("src",()=>{a.tracks=[],m(l,A.events.TRACKS,[])}),a.on(g,e=>{const t=e.detail;t.tracks.forEach((e,n)=>{var s;const i=[];e.lang&&i.push(`Lang: ${e.lang}`),e.codec&&i.push(`Codec: ${e.codec}`);const r=i.length?i.join(" - "):String(n);null===(s=null==a?void 0:a.tracks)||void 0===s||s.push(y(r,a,n===t.defaultIndex,e))})}),a.on(E,e=>{const t=e.detail;t&&function(e,t,n){var s,i,r,a;let o,l=0;for(f.lastIndex=0;null!==(o=f.exec(t));){const t=new AttrList(o[1]);if("VIDEO"===t.TYPE){let o=null===(s=e.tracks)||void 0===s?void 0:s.find(e=>e.label===(t.NAME||t.LANGUAGE||"Track "+l));if(o||(o=y(t.NAME||t.LANGUAGE||l+++"",e,t.bool("DEFAULT")),t.bool("DEFAULT")&&(o.data=null===(i=e.hls)||void 0===i?void 0:i.levels.slice(0)),null===(r=e.tracks)||void 0===r||r.push(o)),t.bool("DEFAULT"))continue;const c=o.data,u={details:void 0,audioGroupIds:null===(a=e.hls)||void 0===a?void 0:a.levels[0].audioGroupIds,attrs:{},urlId:0,url:[t.URI?h.buildAbsoluteURL(n,t.URI,{alwaysNormalize:!0}):""],uri:t.URI?h.buildAbsoluteURL(n,t.URI,{alwaysNormalize:!0}):"",level:null==c?void 0:c.length,name:"level "+(null==c?void 0:c.length)};null==c||c.push(u)}}}(a,t.manifest,t.url)}),null===(o=a.videoTracks)||void 0===o||o.addEventListener("addtrack",()=>{n.is_native&&(a.tracks=Array.from(a.videoTracks||[]).map((e,t)=>y(e.label?e.label:"track "+t,a,e.selected)),a.emit(s,a.tracks))}),a.on("loadeddata",()=>{var e;if(!n.is_native||!a.videoTracks){if(!n.is_native)return(null===(e=a.tracks)||void 0===e?void 0:e.length)&&a.emit(s,a.tracks);a.tracks=[y("default",a,!0)],a.emit(s,a.tracks)}}),a.on(s,()=>{const e=a.tracks;e&&Array.isArray(e)&&(m(l,A.events.TRACKS,e.map(e=>({text:e.label,onclick:()=>e.selected=!0}))),m(l,A.events.SWITCH,{selected_index:e.findIndex(e=>e.default)}),l instanceof FlowplayerMenu&&l.toggle_visibility((null==e?void 0:e.length)<2))}),a.on(i,e=>{const t=e.detail.track,n=a.tracks;if(!t||!n||!Array.isArray(n))return;if(m(l,A.events.SWITCH,{selected_index:n.indexOf(t)}),!a.opts.is_native||!a.videoTracks)return;a.videoTracks[n.indexOf(t)].selected=!0;const s=n.find(e=>e.selected&&e!==t);s&&(s.selected=!1,a.videoTracks[n.indexOf(s)].selected=!1)}),a.on("rts/status",e=>{var t;const n=e.detail.status,s=e.detail.data;if(n===p.Idle)return m(l,A.events.TRACKS,[]),a.tracks=[];n===p.Receiving&&(null===(t=null==a?void 0:a.tracks)||void 0===t||t.push(y((null==s?void 0:s.sourceId)||"Main",a,!(null==s?void 0:s.sourceId),s)))})}}).pluginName="vtsel",A.events=w,A);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,x)});
|
|
1
|
+
!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.vtsel=t())}(this,function(){"use strict";const e=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const s=window.customElements.get(t);if(!s)throw new Error(`no default flowplayer component with the name ${t} exists`);const i=window.customElements.get(n);return"function"!=typeof i?s:i})(e._customElements,t))(e),t="flowplayer-video-menu";class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const n="click",s="videoTracks",i="tracks:video:select",r="has-menu-opened",a="fp-menu-container",o="fp-on",l="fp-invis",c="details[open]."+a;class FlowplayerMenu extends FlowplayerComponent{constructor(e){super(e),this.player=e,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=d(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add(a),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(n,t=>{if(t.defaultPrevented)return;t.preventDefault();const n=this.menuContainer.open;n||(u(),document.active_menu=this.menuContainer),this.menuContainer.open=!n,e.root.classList.toggle(r,!n),this.summaryEle.setAttribute("aria-expanded",n?"false":"true")}),this.addEventListener("focusin",e=>{e.target;HTMLLIElement}),this.addEventListener("focusout",e=>{e.target;HTMLLIElement}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(t){if(this.className=t.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=t.id||d()),this.summaryEle.setAttribute("aria-label",t.menuTitle||"Menu"),t.summaryTitle&&(this.summaryEle.textContent=t.summaryTitle),t.summaryIcon){const n=e(this.player,t.summaryIcon);n.setAttribute("tabindex",""),this.summaryEle.append(n)}t.menuTitle&&(this.menuTitle.textContent=t.menuTitle),this.menu.classList.toggle("fp-icons",!!t.icons),this.addEventListener(t.options_event,e=>{this.render(e.data)}),t.item_selected_event&&this.addEventListener(t.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(e,t){const s=document.createElement("li");s.setAttribute("tabindex","0"),e.icon&&s.append(e.icon);const i=document.createElement("span");i.textContent=e.text,s.append(i),this.olEle.appendChild(s),e.isButton?(s.setAttribute("role","menuitem"),s.addEventListener(n,()=>{"function"==typeof e.onclick&&e.onclick()})):(s.setAttribute("role","menuitemradio"),s.setAttribute("aria-checked","false"),s.addEventListener(n,()=>{this.select_item(t),"function"==typeof e.onclick&&e.onclick()}),e.selected&&this.select_item(t))}select_item(e){var t;if(!(null===(t=this.options[e])||void 0===t?void 0:t.hasAttribute("aria-checked")))throw new Error("Cannot select a button-only item");this.options.forEach((t,n)=>{t.hasAttribute("aria-checked")&&(t.classList.toggle(o,n===e),t.setAttribute("aria-checked",n===e?"true":"false"))})}unselect_item(){this.options.forEach(e=>{e.classList.remove(o),e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked","false")})}toggle_visibility(e){this.classList.toggle(l,e),this.menu.style.setProperty("display",e?"none":"flex")}}function u(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const n=e.root.querySelector(c);n&&(n.open=!1,null===(t=n.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(r,!1))})}function d(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener(n,function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(u(),this.active_menu=void 0)});function m(e,t,n){const s=function(e,t){const n=new CustomEvent(e,{detail:t,cancelable:!0});return t&&Object.defineProperty(n,"data",{get:()=>t}),n}(t,n);return e.dispatchEvent(s),e}var h;!function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("testPassive",null,t),window.removeEventListener("testPassive",null,t)}catch(e){}}(),function(e){e[e.Idle=0]="Idle",e[e.Receiving=1]="Receiving",e[e.Starting=2]="Starting"}(h||(h={}));var p=function(e){var t={exports:{}};return e(t,t.exports),t.exports}(function(e,t){var n,s,i,r,a;n=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,s=/^(?=([^\/?#]*))\1([^]*)$/,i=/(?:\/|^)\.(?=\/)/g,r=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,a={buildAbsoluteURL:function(e,t,n){if(n=n||{},e=e.trim(),!(t=t.trim())){if(!n.alwaysNormalize)return e;var i=a.parseURL(e);if(!i)throw new Error("Error trying to parse base URL.");return i.path=a.normalizePath(i.path),a.buildURLFromParts(i)}var r=a.parseURL(t);if(!r)throw new Error("Error trying to parse relative URL.");if(r.scheme)return n.alwaysNormalize?(r.path=a.normalizePath(r.path),a.buildURLFromParts(r)):t;var o=a.parseURL(e);if(!o)throw new Error("Error trying to parse base URL.");if(!o.netLoc&&o.path&&"/"!==o.path[0]){var l=s.exec(o.path);o.netLoc=l[1],o.path=l[2]}o.netLoc&&!o.path&&(o.path="/");var c={scheme:o.scheme,netLoc:r.netLoc,path:null,params:r.params,query:r.query,fragment:r.fragment};if(!r.netLoc&&(c.netLoc=o.netLoc,"/"!==r.path[0]))if(r.path){var u=o.path,d=u.substring(0,u.lastIndexOf("/")+1)+r.path;c.path=a.normalizePath(d)}else c.path=o.path,r.params||(c.params=o.params,r.query||(c.query=o.query));return null===c.path&&(c.path=n.alwaysNormalize?a.normalizePath(r.path):r.path),a.buildURLFromParts(c)},parseURL:function(e){var t=n.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(i,"");e.length!==(e=e.replace(r,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}},e.exports=a});const f=/#EXT-X-MEDIA:(.*)/g,v=/(.+?)=(".*?"|.*?)(?:,|$)/g;function y(e,t,n,s){let r=n;const a={label:e,default:n,data:s||[]};return Object.defineProperty(a,"selected",{get:()=>r,set(e){var n;"boolean"==typeof e&&r!==e&&(r&&1===(null===(n=t.tracks)||void 0===n?void 0:n.filter(e=>e.selected).length)||(r=e,e&&t.emit(i,{track:a})))}})}class AttrList{constructor(e){"string"==typeof e&&(e=AttrList.parseAttrList(e)),Object.keys(e).forEach(t=>{e.hasOwnProperty(t)&&("X-"===t.substring(0,2)&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(t)),this[t]=e[t])})}bool(e){return"YES"===this[e]}static parseAttrList(e){let t;const n={};for(v.lastIndex=0;null!==(t=v.exec(e));){let e=t[2];0===e.indexOf('"')&&e.lastIndexOf('"')===e.length-1&&(e=e.slice(1,-1));n[t[1].trim()]=e}return n}}const E="parse:video:tracks",g="dash:video:tracks",b=i,A=s;var L,w=Object.freeze({__proto__:null,PARSE_TRACKS:E,DASH_VIDEO_TRACKS:g,VIDEO_TRACK_SELECT:b,VIDEO_TRACKS:A,TRACKS:"video:tracks",SWITCH:"video:update"});const x=((L=class Vtsel{constructor(e){((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,t,class extends FlowplayerMenu{})}init(n,r,a){var o;const l=e(a,t);l instanceof FlowplayerMenu&&l.setMenuAttrs({summaryTitle:a.i18n("vtsel.button_txt","Video"),menuTitle:a.i18n("vtsel.menu_title","Video Track"),class:"fp-vsel",options_event:L.events.TRACKS,item_selected_event:L.events.SWITCH}),a.on("mount",function(){var e;null===(e=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(a,a.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))||void 0===e||e.append(l)}),a.on("src",()=>{a.tracks=[],m(l,L.events.TRACKS,[])}),a.on(g,e=>{const t=e.detail;t.tracks.forEach((e,n)=>{var s;const i=[];e.lang&&i.push(`Lang: ${e.lang}`),e.codec&&i.push(`Codec: ${e.codec}`);const r=i.length?i.join(" - "):String(n);null===(s=null==a?void 0:a.tracks)||void 0===s||s.push(y(r,a,n===t.defaultIndex,e))})}),a.on(E,e=>{const t=e.detail;t&&function(e,t,n){var s,i,r,a;let o,l=0;for(f.lastIndex=0;null!==(o=f.exec(t));){const t=new AttrList(o[1]);if("VIDEO"===t.TYPE){let o=null===(s=e.tracks)||void 0===s?void 0:s.find(e=>e.label===(t.NAME||t.LANGUAGE||"Track "+l));if(o||(o=y(t.NAME||t.LANGUAGE||l+++"",e,t.bool("DEFAULT")),t.bool("DEFAULT")&&(o.data=null===(i=e.hls)||void 0===i?void 0:i.levels.slice(0)),null===(r=e.tracks)||void 0===r||r.push(o)),t.bool("DEFAULT"))continue;const c=o.data,u={details:void 0,audioGroupIds:null===(a=e.hls)||void 0===a?void 0:a.levels[0].audioGroupIds,attrs:{},urlId:0,url:[t.URI?p.buildAbsoluteURL(n,t.URI,{alwaysNormalize:!0}):""],uri:t.URI?p.buildAbsoluteURL(n,t.URI,{alwaysNormalize:!0}):"",level:null==c?void 0:c.length,name:"level "+(null==c?void 0:c.length)};null==c||c.push(u)}}}(a,t.manifest,t.url)}),null===(o=a.videoTracks)||void 0===o||o.addEventListener("addtrack",()=>{n.is_native&&(a.tracks=Array.from(a.videoTracks||[]).map((e,t)=>y(e.label?e.label:"track "+t,a,e.selected)),a.emit(s,a.tracks))}),a.on("loadeddata",()=>{var e;if(!n.is_native||!a.videoTracks){if(!n.is_native)return(null===(e=a.tracks)||void 0===e?void 0:e.length)&&a.emit(s,a.tracks);a.tracks=[y("default",a,!0)],a.emit(s,a.tracks)}}),a.on(s,()=>{const e=a.tracks;e&&Array.isArray(e)&&(m(l,L.events.TRACKS,e.map(e=>({text:e.label,onclick:()=>e.selected=!0}))),m(l,L.events.SWITCH,{selected_index:e.findIndex(e=>e.default)}),l instanceof FlowplayerMenu&&l.toggle_visibility((null==e?void 0:e.length)<2))}),a.on(i,e=>{const t=e.detail.track,n=a.tracks;if(!t||!n||!Array.isArray(n))return;if(m(l,L.events.SWITCH,{selected_index:n.indexOf(t)}),!a.opts.is_native||!a.videoTracks)return;a.videoTracks[n.indexOf(t)].selected=!0;const s=n.find(e=>e.selected&&e!==t);s&&(s.selected=!1,a.videoTracks[n.indexOf(s)].selected=!1)}),a.on("rts/status",e=>{var t;const n=e.detail.status,s=e.detail.data;if(n===h.Idle)return m(l,L.events.TRACKS,[]),a.tracks=[];n===h.Receiving&&(null===(t=null==a?void 0:a.tracks)||void 0===t||t.push(y((null==s?void 0:s.sourceId)||"Main",a,!(null==s?void 0:s.sourceId),s)))})}}).pluginName="vtsel",L.events=w,L);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,x)});
|