@flowplayer/player 3.29.0 → 3.30.0
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/index.d.ts +4 -4
- package/package.json +2 -2
- package/plugins/ads.d.ts +4 -4
- package/plugins/ads.js +2 -2
- package/plugins/airplay.d.ts +4 -4
- package/plugins/airplay.js +1 -1
- package/plugins/analytics.d.ts +4 -4
- package/plugins/analytics.js +1 -1
- package/plugins/asel.d.ts +4 -4
- package/plugins/asel.js +1 -1
- package/plugins/audio.d.ts +4 -4
- package/plugins/audio.js +1 -1
- package/plugins/chapters.d.ts +4 -4
- package/plugins/chapters.js +1 -1
- package/plugins/chromecast.d.ts +4 -4
- package/plugins/chromecast.js +1 -1
- package/plugins/comscore.d.ts +4 -4
- package/plugins/comscore.js +1 -1
- package/plugins/consent.d.ts +4 -4
- package/plugins/consent.js +1 -1
- package/plugins/context-menu.d.ts +4 -4
- package/plugins/context-menu.js +1 -1
- package/plugins/cuepoints.d.ts +4 -4
- package/plugins/cuepoints.js +1 -1
- package/plugins/dash.d.ts +4 -4
- package/plugins/dash.js +2 -5
- package/plugins/drm.d.ts +4 -4
- package/plugins/drm.js +1 -1
- package/plugins/endscreen.d.ts +4 -4
- package/plugins/endscreen.js +1 -1
- package/plugins/fas.d.ts +4 -4
- package/plugins/fas.js +1 -1
- package/plugins/float-on-scroll.d.ts +4 -4
- package/plugins/float-on-scroll.js +1 -1
- package/plugins/ga4.d.ts +4 -4
- package/plugins/ga4.js +1 -1
- package/plugins/gemius.d.ts +4 -4
- package/plugins/gemius.js +1 -1
- package/plugins/google-analytics.d.ts +4 -4
- package/plugins/google-analytics.js +1 -1
- package/plugins/hls.d.ts +4 -4
- package/plugins/hls.js +1 -1
- package/plugins/id3.d.ts +4 -4
- package/plugins/id3.js +1 -1
- package/plugins/iframe.d.ts +4 -4
- package/plugins/iframe.js +1 -1
- package/plugins/keyboard.d.ts +4 -4
- package/plugins/keyboard.js +1 -1
- package/plugins/media-session.d.ts +4 -4
- package/plugins/media-session.js +1 -1
- package/plugins/message.d.ts +4 -4
- package/plugins/message.js +1 -1
- package/plugins/ovp.d.ts +10 -4
- package/plugins/ovp.js +1 -1
- package/plugins/playlist.d.ts +4 -4
- package/plugins/playlist.js +1 -1
- package/plugins/preview.d.ts +4 -4
- package/plugins/preview.js +1 -1
- package/plugins/qsel.d.ts +4 -4
- package/plugins/qsel.js +1 -1
- package/plugins/qul.d.ts +4 -4
- package/plugins/qul.js +1 -1
- package/plugins/rts.d.ts +4 -4
- package/plugins/rts.js +7 -7
- package/plugins/share.d.ts +4 -4
- package/plugins/share.js +1 -1
- package/plugins/speed.d.ts +4 -4
- package/plugins/speed.js +1 -1
- package/plugins/ssai.d.ts +4 -4
- package/plugins/ssai.js +2 -2
- package/plugins/subtitles.d.ts +4 -4
- package/plugins/subtitles.js +1 -1
- package/plugins/thumbnails.d.ts +4 -4
- package/plugins/thumbnails.js +1 -1
- package/plugins/tizen.d.ts +4 -4
- package/plugins/tizen.js +1 -1
- package/plugins/vtsel.d.ts +4 -4
- package/plugins/vtsel.js +1 -1
- package/plugins/webos.d.ts +4 -4
- package/plugins/webos.js +1 -1
- package/util/loader.d.ts +4 -4
package/plugins/share.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { BitrateInfo } from 'dashjs';
|
|
2
1
|
import type { Get } from 'type-fest';
|
|
3
2
|
import type { Level } from 'hls.js';
|
|
3
|
+
import type { Representation } from 'dashjs';
|
|
4
4
|
import type { TupleToUnion } from 'type-fest';
|
|
5
5
|
|
|
6
6
|
/* Excluded from this release type: AnyLoader */
|
|
@@ -1466,7 +1466,7 @@ PROGRESS = "progress";
|
|
|
1466
1466
|
*/
|
|
1467
1467
|
declare type QselOption = (Level & {
|
|
1468
1468
|
level: number;
|
|
1469
|
-
}) |
|
|
1469
|
+
}) | Representation | {
|
|
1470
1470
|
name: string | number;
|
|
1471
1471
|
encodingId: string;
|
|
1472
1472
|
spatialLayerId: number;
|
|
@@ -1514,8 +1514,8 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1514
1514
|
* @public
|
|
1515
1515
|
*/
|
|
1516
1516
|
declare type QualityChangeEventDetail = {
|
|
1517
|
-
before?: Level |
|
|
1518
|
-
after?: Level |
|
|
1517
|
+
before?: Level | Representation;
|
|
1518
|
+
after?: Level | Representation;
|
|
1519
1519
|
plugin: string;
|
|
1520
1520
|
automatic: boolean;
|
|
1521
1521
|
/* Excluded from this release type: downscale */
|
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={name:"fp-facebook"},t={name:"fp-link"},n={name:"fp-share"},s={name:"fp-embed"},i={name:"fp-twitter"};function o(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}function r(){try{return(document.querySelector("meta[name='description']")||{content:""}).content}catch(e){return""}}function l(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 a=(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),c=(e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)},u="fp-on",d="fp-invis";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=p(),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("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",t=>{if(t.defaultPrevented)return;t.preventDefault();const n=this.menuContainer.open;n||(m(),document.active_menu=this.menuContainer),this.menuContainer.open=!n,e.root.classList.toggle("has-menu-opened",!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||p()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=a(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 n=document.createElement("li");n.setAttribute("role","menuitem"),n.setAttribute("aria-selected","false"),n.setAttribute("tabindex","0"),e.icon&&n.append(e.icon);const s=document.createElement("span");s.textContent=e.text,n.append(s),n.addEventListener("click",()=>{this.select_item(t),"function"==typeof e.onclick&&e.onclick()}),this.olEle.appendChild(n),e.selected&&this.select_item(t)}select_item(e){this.options.forEach((t,n)=>{t.classList.toggle(u,n===e)})}unselect_item(){this.options.forEach(e=>{e.classList.remove(u)})}toggle_visibility(e){this.classList.toggle(d,e),this.menu.style.setProperty("display",e?"none":"flex")}}function m(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const n=e.root.querySelector("details[open].fp-menu-container");n&&(n.open=!1,null===(t=n.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle("has-menu-opened",!1))})}function p(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function h(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 f(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}document.addEventListener("click",(function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(m(),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 y="flowplayer-share-menu";var w;const b=((w=class Share{constructor(o){this.umd=o,this.share_options=[],c(o,y,FlowplayerMenu),c(this.umd,"flowplayer-facebook-icon",class extends FlowplayerIcon{constructor(t){super(t,e)}}),c(this.umd,"flowplayer-twitter-icon",class extends FlowplayerIcon{constructor(e){super(e,i)}}),c(this.umd,"flowplayer-link-icon",class extends FlowplayerIcon{constructor(e){super(e,t)}}),c(this.umd,"flowplayer-embed-icon",class extends FlowplayerIcon{constructor(e){super(e,s)}}),c(this.umd,"flowplayer-share-icon",class extends FlowplayerIcon{constructor(e){super(e,n)}})}init(e,t,n){const s=a(n,y);s instanceof FlowplayerMenu&&s.setMenuAttrs({menuTitle:n.i18n("share.menu_title"),class:"fp-share-menu fp-togglable",summaryIcon:"flowplayer-share-icon",icons:!0,options_event:w.events.OPTIONS});const i={prev_config:0,webshare_listener:0};n.on("mount",(function(){var e;null===(e=f(n,"flowplayer-header-left-zone"))||void 0===e||e.append(s),s instanceof FlowplayerMenu&&s.menuContainer.addEventListener("toggle",(function(){t.classList.toggle("is-share-menu",this.open);const e=f(n,"flowplayer-control");this.open&&(t.classList.contains("is-small")?n.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"}(s,e))}))})),n.on("config",t=>{const c=o(t,"data.share",{});if(!1===c)return s instanceof FlowplayerMenu&&void s.classList.remove("webshare-enabled");if(i.prev_config===c)return;if(i.prev_config=c,s instanceof FlowplayerMenu&&function(){try{return"https:"===window.location.protocol&&"function"==typeof navigator.share}catch(e){return!1}}()&&o(c,"web_share",!0))return function(e){e.classList.add("webshare-enabled")}(s),i.webshare_listener||function(e,t,n){n.webshare_listener=!0,t.addEventListener("click",(function(){if(!t.classList.contains("webshare-enabled"))return;t.menuContainer.open=!1;navigator.share({title:o(e,"share.title",document.title),text:o(e,"share.text",r()),url:l(o(e,"share",{}))}).catch((function(){}))}))}(e,s,i);this.share_options=[];const u="string"==typeof c.link?c.link:window.location.toString();if(c.iframe){const e="string"==typeof c.iframe?c.iframe:u;this.share_options.push(g(n,s,"share.embed",_.bind(null,e,n),a(n,"flowplayer-embed-icon")))}c.link&&this.share_options.push(g(n,s,"share.link",x.bind(null,u),a(n,"flowplayer-link-icon"))),c.facebook&&this.share_options.push(g(n,s,"Facebook",A.bind(null,u),a(n,"flowplayer-facebook-icon"))),c.twitter&&this.share_options.push(g(n,s,"Twitter",L.bind(null,u),a(n,"flowplayer-twitter-icon"))),h(s,w.events.OPTIONS,this.share_options)})}add_options(e,...t){const n=e.root.querySelector(y);n&&t.forEach(t=>{const s=g(e,n,t.text,t.onclick,t.icon);n.menuOption(s,n.options.length)})}}).pluginName="share",w.events={OPTIONS:"share:options"},w);function g(e,t,n,s,i){return{text:E(e,n),icon:i,onclick:v.bind(null,e,t,s)}}function E(e,t){return 0===t.indexOf("share.")?e.i18n(t):t}function v(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 _(e,t){const n=t.videoHeight/t.videoWidth;return x('<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 x(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 A(e){return C("https://www.facebook.com/sharer.php?u="+encodeURIComponent(e)),{success:!0}}function L(e){return C("https://twitter.com/intent/tweet?url="+encodeURIComponent(e)),{success:!0}}function C(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,b)}));
|
|
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)});
|
package/plugins/speed.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { BitrateInfo } from 'dashjs';
|
|
2
1
|
import type { Get } from 'type-fest';
|
|
3
2
|
import type { Level } from 'hls.js';
|
|
3
|
+
import type { Representation } from 'dashjs';
|
|
4
4
|
import type { TupleToUnion } from 'type-fest';
|
|
5
5
|
|
|
6
6
|
/* Excluded from this release type: AnyLoader */
|
|
@@ -1466,7 +1466,7 @@ PROGRESS = "progress";
|
|
|
1466
1466
|
*/
|
|
1467
1467
|
declare type QselOption = (Level & {
|
|
1468
1468
|
level: number;
|
|
1469
|
-
}) |
|
|
1469
|
+
}) | Representation | {
|
|
1470
1470
|
name: string | number;
|
|
1471
1471
|
encodingId: string;
|
|
1472
1472
|
spatialLayerId: number;
|
|
@@ -1514,8 +1514,8 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1514
1514
|
* @public
|
|
1515
1515
|
*/
|
|
1516
1516
|
declare type QualityChangeEventDetail = {
|
|
1517
|
-
before?: Level |
|
|
1518
|
-
after?: Level |
|
|
1517
|
+
before?: Level | Representation;
|
|
1518
|
+
after?: Level | Representation;
|
|
1519
1519
|
plugin: string;
|
|
1520
1520
|
automatic: boolean;
|
|
1521
1521
|
/* Excluded from this release type: downscale */
|
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,
|
|
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=>{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||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("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(i,n===e)})}unselect_item(){this.options.forEach(e=>{e.classList.remove(i)})}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 m;const d=((m=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:m.events.OPTIONS,item_selected_event:m.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,m.events.OPTIONS,[]);const l="boolean"!=typeof n&&n.options?n.options:m.DEFAULT_SPEED_OPTIONS,r="boolean"!=typeof n&&n.labels?n.labels:[];Array.isArray(l)&&(u(o,m.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,m.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",m.DEFAULT_SPEED_OPTIONS=[.2,.5,1,2,10],m.events={OPTIONS:"speed:options",SWITCH:"speed:switch"},m);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,d)});
|
package/plugins/ssai.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { BitrateInfo } from 'dashjs';
|
|
2
1
|
import type { FragParsingMetadataData } from 'hls.js';
|
|
3
2
|
import type { Get } from 'type-fest';
|
|
4
3
|
import type { Level } from 'hls.js';
|
|
4
|
+
import type { Representation } from 'dashjs';
|
|
5
5
|
import type { TupleToUnion } from 'type-fest';
|
|
6
6
|
|
|
7
7
|
declare interface Ad {
|
|
@@ -1558,7 +1558,7 @@ PROGRESS = "progress";
|
|
|
1558
1558
|
*/
|
|
1559
1559
|
declare type QselOption = (Level & {
|
|
1560
1560
|
level: number;
|
|
1561
|
-
}) |
|
|
1561
|
+
}) | Representation | {
|
|
1562
1562
|
name: string | number;
|
|
1563
1563
|
encodingId: string;
|
|
1564
1564
|
spatialLayerId: number;
|
|
@@ -1606,8 +1606,8 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1606
1606
|
* @public
|
|
1607
1607
|
*/
|
|
1608
1608
|
declare type QualityChangeEventDetail = {
|
|
1609
|
-
before?: Level |
|
|
1610
|
-
after?: Level |
|
|
1609
|
+
before?: Level | Representation;
|
|
1610
|
+
after?: Level | Representation;
|
|
1611
1611
|
plugin: string;
|
|
1612
1612
|
automatic: boolean;
|
|
1613
1613
|
/* Excluded from this release type: downscale */
|
package/plugins/ssai.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.ssai=t())}(this,(function(){"use strict";function e(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const r=e.flowplayer;return"function"==typeof r?(r(t),t):(Array.isArray(r.extensions)||(r.extensions=[]),~r.extensions.indexOf(t)||r.extensions.push(t),t)}const t="function"==typeof HTMLMediaElement&&Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"currentTime");function r(e){var r;if(t)return null===(r=null==t?void 0:t.get)||void 0===r?void 0:r.call(e)}function i(e,r){var i;if(t)return null===(i=null==t?void 0:t.set)||void 0===i?void 0:i.call(e,r)}const s="function"==typeof HTMLMediaElement&&Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"duration");function o(e){var t;if(s)return null===(t=null==s?void 0:s.get)||void 0===t?void 0:t.call(e)}const a="ad-break-completed";var n=Object.freeze({__proto__:null,SSAI_AD_START:"ad-break-started",SSAI_AD_END:a,SSAI_AD_PROGRESS:"ad-progress",SSAI_AD_SKIPPED:"ad-skipped",SSAI_AD_PAUSED:"ad-paused",SSAI_AD_RESUMED:"ad-resumed",SSAI_AD_STARTED:"ad-started",SSAI_AD_COMPLETED:"ad-completed",SSAI_AD_ERROR:"ad-error",HLS_METADATA:"ssai:hls:metadata",DASH_METADATA:"ssai:dash:metadata"});function c(e,t){const r=function(){try{return localStorage.getItem("flowplayer/debug")}catch(e){return""}}(),i=(i,...s)=>{try{const o=(null==t?void 0:t.debug)||r;o&&e.match(o)&&console.log(`flowplayer/${e} -- ${i}`,...s)}catch(e){console.warn(e)}};return i.log=i,i}const d={ok:c("fpads:analytics:request-queue"),err:c("fpads:analytics:request-queue:err"),warn:c("fpads:analytics:request-queue:warn")};class RequestQueue{static of(){return new RequestQueue}static is_empty(e){return 0==e.pending.length}static is_high_water(e){return e.open.length==RequestQueue.MAX_OPEN_REQUESTS}static maybe_spawn_req(e){if(RequestQueue.is_empty(e))return d.ok("maybe_spawn_req called Queue that is EMPTY"),e;if(RequestQueue.is_high_water(e))return d.warn("maybe_spawn_req called on Queue that is HIGH_WATER"),e;try{const t=RequestQueue.lpop(e);t&&RequestQueue.request(e,t)}catch(e){d.err(e)}}static increment_failures(e){return e.stats.failures++,e.stats.failures>RequestQueue.MAX_FAILURE_COUNT&&(e.stats.ttl=Date.now()+RequestQueue.REQUEST_TTL_MS),e}static handle_error(e,t){RequestQueue.rm(e,t),RequestQueue.increment_failures(e)}static request(e,[t,r,i]){if(d.ok(`Request[${i.event_type}] request`,i,e.stats),Date.now()<e.stats.ttl)return d.warn(`Request[${i.event_type}] skipping because too many errors too quickly`,e.stats);const s=new XMLHttpRequest;e.open.push(s),s.timeout=RequestQueue.REQUEST_TIMEOUT_MS,s.ontimeout=function(){RequestQueue.handle_error(e,s),d.warn(`Request[${i.event_type}] timed out in ${s.timeout}ms`,e.stats)},s.onerror=function(t){RequestQueue.handle_error(e,s),t&&d.err(t),d.warn(`Request[${i.event_type}] encountered an Error`,s.responseText,e.stats)},s.onreadystatechange=function(){s.readyState==XMLHttpRequest.DONE&&RequestQueue.rm(e,s),Math.floor(s.status/100)},s.onload=function(){RequestQueue.rm(e,s),e.stats.failures&&e.stats.failures--,d.ok(`Request[${i.event_type}] :ok`,s.status)},s.open(r,t),s.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{s.send(JSON.stringify(i))}catch(e){d.err(e)}}static rpush(e,...t){return t.forEach(t=>{if(RequestQueue.is_high_water(e))return d.warn("Too many open requests, skipping",e.stats);e.pending.push(t),RequestQueue.maybe_spawn_req(e)}),e}static lpop(e){return e.pending.shift()}static rm(e,t){const r=e.open.lastIndexOf(t);return~r&&e.open.splice(r,1),e}constructor(e=[],t=[],r={failures:0,ttl:0}){this.pending=e,this.open=t,this.stats=r}}RequestQueue.MAX_OPEN_REQUESTS=3,RequestQueue.REQUEST_TIMEOUT_MS=4e3,RequestQueue.REQUEST_TTL_MS=5e3,RequestQueue.MAX_FAILURE_COUNT=3;const l={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},u={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},p={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},m={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},g={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class Utils{static getFirstMatch(e,t){const r=t.match(e);return r&&r.length>0&&r[1]||""}static getSecondMatch(e,t){const r=t.match(e);return r&&r.length>1&&r[2]||""}static matchAndReturnConst(e,t,r){if(e.test(t))return r}static getWindowsVersionName(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(e){const t=e.split(".").splice(0,2).map(e=>parseInt(e,10)||0);if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(e){const t=e.split(".").splice(0,2).map(e=>parseInt(e,10)||0);if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0}static getVersionPrecision(e){return e.split(".").length}static compareVersions(e,t,r=!1){const i=Utils.getVersionPrecision(e),s=Utils.getVersionPrecision(t);let o=Math.max(i,s),a=0;const n=Utils.map([e,t],e=>{const t=o-Utils.getVersionPrecision(e),r=e+new Array(t+1).join(".0");return Utils.map(r.split("."),e=>new Array(20-e.length).join("0")+e).reverse()});for(r&&(a=o-Math.min(i,s)),o-=1;o>=a;){if(n[0][o]>n[1][o])return 1;if(n[0][o]===n[1][o]){if(o===a)return 0;o-=1}else if(n[0][o]<n[1][o])return-1}}static map(e,t){const r=[];let i;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(i=0;i<e.length;i+=1)r.push(t(e[i]));return r}static find(e,t){let r,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,i=e.length;r<i;r+=1){const i=e[r];if(t(i,r))return i}}static assign(e,...t){const r=e;let i,s;if(Object.assign)return Object.assign(e,...t);for(i=0,s=t.length;i<s;i+=1){const e=t[i];if("object"==typeof e&&null!==e){Object.keys(e).forEach(t=>{r[t]=e[t]})}}return e}static getBrowserAlias(e){return l[e]}static getBrowserTypeByAlias(e){return u[e]||""}}const f=/version\/(\d+(\.?_?\d+)+)/i,h=[{test:[/googlebot/i],describe(e){const t={name:"Googlebot"},r=Utils.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/opera/i],describe(e){const t={name:"Opera"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe(e){const t={name:"Opera"},r=Utils.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe(e){const t={name:"Samsung Internet for Android"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe(e){const t={name:"NAVER Whale Browser"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe(e){const t={name:"MZ Browser"},r=Utils.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/focus/i],describe(e){const t={name:"Focus"},r=Utils.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/swing/i],describe(e){const t={name:"Swing"},r=Utils.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/coast/i],describe(e){const t={name:"Opera Coast"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(e){const t={name:"Opera Touch"},r=Utils.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe(e){const t={name:"Yandex Browser"},r=Utils.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe(e){const t={name:"UC Browser"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe(e){const t={name:"Maxthon"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe(e){const t={name:"Epiphany"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe(e){const t={name:"Puffin"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe(e){const t={name:"Sleipnir"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe(e){const t={name:"K-Meleon"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe(e){const t={name:"WeChat"},r=Utils.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe(e){const t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=Utils.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe(e){const t={name:"Internet Explorer"},r=Utils.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe(e){const t={name:"Microsoft Edge"},r=Utils.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe(e){const t={name:"Microsoft Edge"},r=Utils.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe(e){const t={name:"Vivaldi"},r=Utils.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe(e){const t={name:"SeaMonkey"},r=Utils.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe(e){const t={name:"Sailfish"},r=Utils.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe(e){const t={name:"Amazon Silk"},r=Utils.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe(e){const t={name:"PhantomJS"},r=Utils.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe(e){const t={name:"SlimerJS"},r=Utils.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const t={name:"BlackBerry"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe(e){const t={name:"WebOS Browser"},r=Utils.getFirstMatch(f,e)||Utils.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe(e){const t={name:"Bada"},r=Utils.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe(e){const t={name:"Tizen"},r=Utils.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe(e){const t={name:"QupZilla"},r=Utils.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe(e){const t={name:"Firefox"},r=Utils.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe(e){const t={name:"Electron"},r=Utils.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe(e){const t={name:"Miui"},r=Utils.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe(e){const t={name:"Chromium"},r=Utils.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe(e){const t={name:"Chrome"},r=Utils.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe(e){const t={name:"Google Search"},r=Utils.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test(e){const t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe(e){const t={name:"Android Browser"},r=Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe(e){const t={name:"PlayStation 4"},r=Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe(e){const t={name:"Safari"},r=Utils.getFirstMatch(f,e);return r&&(t.version=r),t}},{test:[/.*/i],describe(e){const t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:Utils.getFirstMatch(t,e),version:Utils.getSecondMatch(t,e)}}}];var y=[{test:[/Roku\/DVP/],describe(e){const t=Utils.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:m.Roku,version:t}}},{test:[/windows phone/i],describe(e){const t=Utils.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:m.WindowsPhone,version:t}}},{test:[/windows /i],describe(e){const t=Utils.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=Utils.getWindowsVersionName(t);return{name:m.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(e){const t={name:m.iOS},r=Utils.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe(e){const t=Utils.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=Utils.getMacOSVersionName(t),i={name:m.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe(e){const t=Utils.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:m.iOS,version:t}}},{test(e){const t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe(e){const t=Utils.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=Utils.getAndroidVersionName(t),i={name:m.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe(e){const t=Utils.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:m.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const t=Utils.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||Utils.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||Utils.getFirstMatch(/\bbb(\d+)/i,e);return{name:m.BlackBerry,version:t}}},{test:[/bada/i],describe(e){const t=Utils.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:m.Bada,version:t}}},{test:[/tizen/i],describe(e){const t=Utils.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:m.Tizen,version:t}}},{test:[/linux/i],describe:()=>({name:m.Linux})},{test:[/CrOS/],describe:()=>({name:m.ChromeOS})},{test:[/PlayStation 4/],describe(e){const t=Utils.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:m.PlayStation4,version:t}}}],v=[{test:[/googlebot/i],describe:()=>({type:"bot",vendor:"Google"})},{test:[/huawei/i],describe(e){const t=Utils.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:p.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:()=>({type:p.tablet,vendor:"Nexus"})},{test:[/ipad/i],describe:()=>({type:p.tablet,vendor:"Apple",model:"iPad"})},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:()=>({type:p.tablet,vendor:"Apple",model:"iPad"})},{test:[/kftt build/i],describe:()=>({type:p.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"})},{test:[/silk/i],describe:()=>({type:p.tablet,vendor:"Amazon"})},{test:[/tablet(?! pc)/i],describe:()=>({type:p.tablet})},{test(e){const t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe(e){const t=Utils.getFirstMatch(/(ipod|iphone)/i,e);return{type:p.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:p.mobile,vendor:"Nexus"})},{test:[/[^-]mobi/i],describe:()=>({type:p.mobile})},{test:e=>"blackberry"===e.getBrowserName(!0),describe:()=>({type:p.mobile,vendor:"BlackBerry"})},{test:e=>"bada"===e.getBrowserName(!0),describe:()=>({type:p.mobile})},{test:e=>"windows phone"===e.getBrowserName(),describe:()=>({type:p.mobile,vendor:"Microsoft"})},{test(e){const t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:()=>({type:p.tablet})},{test:e=>"android"===e.getOSName(!0),describe:()=>({type:p.mobile})},{test:e=>"macos"===e.getOSName(!0),describe:()=>({type:p.desktop,vendor:"Apple"})},{test:e=>"windows"===e.getOSName(!0),describe:()=>({type:p.desktop})},{test:e=>"linux"===e.getOSName(!0),describe:()=>({type:p.desktop})},{test:e=>"playstation 4"===e.getOSName(!0),describe:()=>({type:p.tv})},{test:e=>"roku"===e.getOSName(!0),describe:()=>({type:p.tv})}],b=[{test:e=>"microsoft edge"===e.getBrowserName(!0),describe(e){if(/\sedg\//i.test(e))return{name:g.Blink};const t=Utils.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:g.EdgeHTML,version:t}}},{test:[/trident/i],describe(e){const t={name:g.Trident},r=Utils.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:e=>e.test(/presto/i),describe(e){const t={name:g.Presto},r=Utils.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test(e){const t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe(e){const t={name:g.Gecko},r=Utils.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:()=>({name:g.Blink})},{test:[/(apple)?webkit/i],describe(e){const t={name:g.WebKit},r=Utils.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];class Parser{constructor(e,t=!1){if(null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=Utils.find(h,e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some(e=>this.test(e));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=Utils.find(y,e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some(e=>this.test(e));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:t}=this.getOS();return e?String(t).toLowerCase()||"":t||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:t}=this.getPlatform();return e?String(t).toLowerCase()||"":t||""}parsePlatform(){this.parsedResult.platform={};const e=Utils.find(v,e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some(e=>this.test(e));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const e=Utils.find(b,e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some(e=>this.test(e));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return Utils.assign({},this.parsedResult)}satisfies(e){const t={};let r=0;const i={};let s=0;if(Object.keys(e).forEach(o=>{const a=e[o];"string"==typeof a?(i[o]=a,s+=1):"object"==typeof a&&(t[o]=a,r+=1)}),r>0){const e=Object.keys(t),r=Utils.find(e,e=>this.isOS(e));if(r){const e=this.satisfies(t[r]);if(void 0!==e)return e}const i=Utils.find(e,e=>this.isPlatform(e));if(i){const e=this.satisfies(t[i]);if(void 0!==e)return e}}if(s>0){const e=Object.keys(i),t=Utils.find(e,e=>this.isBrowser(e,!0));if(void 0!==t)return this.compareVersion(i[t])}}isBrowser(e,t=!1){const r=this.getBrowserName().toLowerCase();let i=e.toLowerCase();const s=Utils.getBrowserTypeByAlias(i);return t&&s&&(i=s.toLowerCase()),i===r}compareVersion(e){let t=[0],r=e,i=!1;const s=this.getBrowserVersion();if("string"==typeof s)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(i=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(Utils.compareVersions(s,r,i))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,t=!1){return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some(e=>this.is(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.ssai=t())}(this,function(){"use strict";function e(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const r=e.flowplayer;return"function"==typeof r?(r(t),t):(Array.isArray(r.extensions)||(r.extensions=[]),~r.extensions.indexOf(t)||r.extensions.push(t),t)}const t="progress",r="timeupdate",i="pause",s="playing",o="ended";const n="function"==typeof HTMLMediaElement&&Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"currentTime");function a(e){var t;if(n)return null===(t=null==n?void 0:n.get)||void 0===t?void 0:t.call(e)}function c(e,t){var r;if(n)return null===(r=null==n?void 0:n.set)||void 0===r?void 0:r.call(e,t)}const d="function"==typeof HTMLMediaElement&&Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"duration");function l(e){var t;if(d)return null===(t=null==d?void 0:d.get)||void 0===t?void 0:t.call(e)}const u="ad-break-started",p="ad-break-completed",m="ad-progress",g="ad-skipped",f="ad-paused",h="ad-resumed",y="ad-started",v="ad-completed",b="ssai:hls:metadata",w="ssai:dash:metadata";var S=Object.freeze({__proto__:null,SSAI_AD_START:u,SSAI_AD_END:p,SSAI_AD_PROGRESS:m,SSAI_AD_SKIPPED:g,SSAI_AD_PAUSED:f,SSAI_AD_RESUMED:h,SSAI_AD_STARTED:y,SSAI_AD_COMPLETED:v,SSAI_AD_ERROR:"ad-error",HLS_METADATA:b,DASH_METADATA:w});function k(e,t){const r=function(){try{return localStorage.getItem("flowplayer/debug")}catch(e){return""}}(),i=(i,...s)=>{try{const o=(null==t?void 0:t.debug)||r;o&&e.match(o)&&console.log(`flowplayer/${e} -- ${i}`,...s)}catch(e){console.warn(e)}};return i.log=i,i}const A={ok:k("fpads:analytics:request-queue"),err:k("fpads:analytics:request-queue:err"),warn:k("fpads:analytics:request-queue:warn")};class RequestQueue{static of(){return new RequestQueue}static is_empty(e){return 0==e.pending.length}static is_high_water(e){return e.open.length==RequestQueue.MAX_OPEN_REQUESTS}static maybe_spawn_req(e){if(RequestQueue.is_empty(e))return A.ok("maybe_spawn_req called Queue that is EMPTY"),e;if(RequestQueue.is_high_water(e))return A.warn("maybe_spawn_req called on Queue that is HIGH_WATER"),e;try{const t=RequestQueue.lpop(e);t&&RequestQueue.request(e,t)}catch(e){A.err(e)}}static increment_failures(e){return e.stats.failures++,e.stats.failures>RequestQueue.MAX_FAILURE_COUNT&&(e.stats.ttl=Date.now()+RequestQueue.REQUEST_TTL_MS),e}static handle_error(e,t){RequestQueue.rm(e,t),RequestQueue.increment_failures(e)}static request(e,[t,r,i]){if(A.ok(`Request[${i.event_type}] request`,i,e.stats),Date.now()<e.stats.ttl)return A.warn(`Request[${i.event_type}] skipping because too many errors too quickly`,e.stats);const s=new XMLHttpRequest;e.open.push(s),s.timeout=RequestQueue.REQUEST_TIMEOUT_MS,s.ontimeout=function(){RequestQueue.handle_error(e,s),A.warn(`Request[${i.event_type}] timed out in ${s.timeout}ms`,e.stats)},s.onerror=function(t){RequestQueue.handle_error(e,s),t&&A.err(t),A.warn(`Request[${i.event_type}] encountered an Error`,s.responseText,e.stats)},s.onreadystatechange=function(){s.readyState==XMLHttpRequest.DONE&&RequestQueue.rm(e,s),Math.floor(s.status/100)},s.onload=function(){RequestQueue.rm(e,s),e.stats.failures&&e.stats.failures--,A.ok(`Request[${i.event_type}] :ok`,s.status)},s.open(r,t),s.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{s.send(JSON.stringify(i))}catch(e){A.err(e)}}static rpush(e,...t){return t.forEach(t=>{if(RequestQueue.is_high_water(e))return A.warn("Too many open requests, skipping",e.stats);e.pending.push(t),RequestQueue.maybe_spawn_req(e)}),e}static lpop(e){return e.pending.shift()}static rm(e,t){const r=e.open.lastIndexOf(t);return~r&&e.open.splice(r,1),e}constructor(e=[],t=[],r={failures:0,ttl:0}){this.pending=e,this.open=t,this.stats=r}}RequestQueue.MAX_OPEN_REQUESTS=3,RequestQueue.REQUEST_TIMEOUT_MS=4e3,RequestQueue.REQUEST_TTL_MS=5e3,RequestQueue.MAX_FAILURE_COUNT=3;const M={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},E={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},P={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},_={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},T={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class Utils{static getFirstMatch(e,t){const r=t.match(e);return r&&r.length>0&&r[1]||""}static getSecondMatch(e,t){const r=t.match(e);return r&&r.length>1&&r[2]||""}static matchAndReturnConst(e,t,r){if(e.test(t))return r}static getWindowsVersionName(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(e){const t=e.split(".").splice(0,2).map(e=>parseInt(e,10)||0);if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(e){const t=e.split(".").splice(0,2).map(e=>parseInt(e,10)||0);if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0}static getVersionPrecision(e){return e.split(".").length}static compareVersions(e,t,r=!1){const i=Utils.getVersionPrecision(e),s=Utils.getVersionPrecision(t);let o=Math.max(i,s),n=0;const a=Utils.map([e,t],e=>{const t=o-Utils.getVersionPrecision(e),r=e+new Array(t+1).join(".0");return Utils.map(r.split("."),e=>new Array(20-e.length).join("0")+e).reverse()});for(r&&(n=o-Math.min(i,s)),o-=1;o>=n;){if(a[0][o]>a[1][o])return 1;if(a[0][o]===a[1][o]){if(o===n)return 0;o-=1}else if(a[0][o]<a[1][o])return-1}}static map(e,t){const r=[];let i;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(i=0;i<e.length;i+=1)r.push(t(e[i]));return r}static find(e,t){let r,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,i=e.length;r<i;r+=1){const i=e[r];if(t(i,r))return i}}static assign(e,...t){const r=e;let i,s;if(Object.assign)return Object.assign(e,...t);for(i=0,s=t.length;i<s;i+=1){const e=t[i];if("object"==typeof e&&null!==e){Object.keys(e).forEach(t=>{r[t]=e[t]})}}return e}static getBrowserAlias(e){return M[e]}static getBrowserTypeByAlias(e){return E[e]||""}}const C=/version\/(\d+(\.?_?\d+)+)/i,U=[{test:[/googlebot/i],describe(e){const t={name:"Googlebot"},r=Utils.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/opera/i],describe(e){const t={name:"Opera"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe(e){const t={name:"Opera"},r=Utils.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe(e){const t={name:"Samsung Internet for Android"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe(e){const t={name:"NAVER Whale Browser"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe(e){const t={name:"MZ Browser"},r=Utils.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/focus/i],describe(e){const t={name:"Focus"},r=Utils.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/swing/i],describe(e){const t={name:"Swing"},r=Utils.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/coast/i],describe(e){const t={name:"Opera Coast"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(e){const t={name:"Opera Touch"},r=Utils.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe(e){const t={name:"Yandex Browser"},r=Utils.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe(e){const t={name:"UC Browser"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe(e){const t={name:"Maxthon"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe(e){const t={name:"Epiphany"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe(e){const t={name:"Puffin"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe(e){const t={name:"Sleipnir"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe(e){const t={name:"K-Meleon"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe(e){const t={name:"WeChat"},r=Utils.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe(e){const t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=Utils.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe(e){const t={name:"Internet Explorer"},r=Utils.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe(e){const t={name:"Microsoft Edge"},r=Utils.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe(e){const t={name:"Microsoft Edge"},r=Utils.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe(e){const t={name:"Vivaldi"},r=Utils.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe(e){const t={name:"SeaMonkey"},r=Utils.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe(e){const t={name:"Sailfish"},r=Utils.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe(e){const t={name:"Amazon Silk"},r=Utils.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe(e){const t={name:"PhantomJS"},r=Utils.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe(e){const t={name:"SlimerJS"},r=Utils.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const t={name:"BlackBerry"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe(e){const t={name:"WebOS Browser"},r=Utils.getFirstMatch(C,e)||Utils.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe(e){const t={name:"Bada"},r=Utils.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe(e){const t={name:"Tizen"},r=Utils.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe(e){const t={name:"QupZilla"},r=Utils.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe(e){const t={name:"Firefox"},r=Utils.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe(e){const t={name:"Electron"},r=Utils.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe(e){const t={name:"Miui"},r=Utils.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe(e){const t={name:"Chromium"},r=Utils.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe(e){const t={name:"Chrome"},r=Utils.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe(e){const t={name:"Google Search"},r=Utils.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test(e){const t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe(e){const t={name:"Android Browser"},r=Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe(e){const t={name:"PlayStation 4"},r=Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe(e){const t={name:"Safari"},r=Utils.getFirstMatch(C,e);return r&&(t.version=r),t}},{test:[/.*/i],describe(e){const t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:Utils.getFirstMatch(t,e),version:Utils.getSecondMatch(t,e)}}}];var R=[{test:[/Roku\/DVP/],describe(e){const t=Utils.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:_.Roku,version:t}}},{test:[/windows phone/i],describe(e){const t=Utils.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:_.WindowsPhone,version:t}}},{test:[/windows /i],describe(e){const t=Utils.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=Utils.getWindowsVersionName(t);return{name:_.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(e){const t={name:_.iOS},r=Utils.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe(e){const t=Utils.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=Utils.getMacOSVersionName(t),i={name:_.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe(e){const t=Utils.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:_.iOS,version:t}}},{test(e){const t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe(e){const t=Utils.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=Utils.getAndroidVersionName(t),i={name:_.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe(e){const t=Utils.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:_.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const t=Utils.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||Utils.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||Utils.getFirstMatch(/\bbb(\d+)/i,e);return{name:_.BlackBerry,version:t}}},{test:[/bada/i],describe(e){const t=Utils.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:_.Bada,version:t}}},{test:[/tizen/i],describe(e){const t=Utils.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:_.Tizen,version:t}}},{test:[/linux/i],describe:()=>({name:_.Linux})},{test:[/CrOS/],describe:()=>({name:_.ChromeOS})},{test:[/PlayStation 4/],describe(e){const t=Utils.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:_.PlayStation4,version:t}}}],N=[{test:[/googlebot/i],describe:()=>({type:"bot",vendor:"Google"})},{test:[/huawei/i],describe(e){const t=Utils.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:P.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:()=>({type:P.tablet,vendor:"Nexus"})},{test:[/ipad/i],describe:()=>({type:P.tablet,vendor:"Apple",model:"iPad"})},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:()=>({type:P.tablet,vendor:"Apple",model:"iPad"})},{test:[/kftt build/i],describe:()=>({type:P.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"})},{test:[/silk/i],describe:()=>({type:P.tablet,vendor:"Amazon"})},{test:[/tablet(?! pc)/i],describe:()=>({type:P.tablet})},{test(e){const t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe(e){const t=Utils.getFirstMatch(/(ipod|iphone)/i,e);return{type:P.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:P.mobile,vendor:"Nexus"})},{test:[/[^-]mobi/i],describe:()=>({type:P.mobile})},{test:e=>"blackberry"===e.getBrowserName(!0),describe:()=>({type:P.mobile,vendor:"BlackBerry"})},{test:e=>"bada"===e.getBrowserName(!0),describe:()=>({type:P.mobile})},{test:e=>"windows phone"===e.getBrowserName(),describe:()=>({type:P.mobile,vendor:"Microsoft"})},{test(e){const t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:()=>({type:P.tablet})},{test:e=>"android"===e.getOSName(!0),describe:()=>({type:P.mobile})},{test:e=>"macos"===e.getOSName(!0),describe:()=>({type:P.desktop,vendor:"Apple"})},{test:e=>"windows"===e.getOSName(!0),describe:()=>({type:P.desktop})},{test:e=>"linux"===e.getOSName(!0),describe:()=>({type:P.desktop})},{test:e=>"playstation 4"===e.getOSName(!0),describe:()=>({type:P.tv})},{test:e=>"roku"===e.getOSName(!0),describe:()=>({type:P.tv})}],O=[{test:e=>"microsoft edge"===e.getBrowserName(!0),describe(e){if(/\sedg\//i.test(e))return{name:T.Blink};const t=Utils.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:T.EdgeHTML,version:t}}},{test:[/trident/i],describe(e){const t={name:T.Trident},r=Utils.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:e=>e.test(/presto/i),describe(e){const t={name:T.Presto},r=Utils.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test(e){const t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe(e){const t={name:T.Gecko},r=Utils.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:()=>({name:T.Blink})},{test:[/(apple)?webkit/i],describe(e){const t={name:T.WebKit},r=Utils.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];class Parser{constructor(e,t=!1){if(null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=Utils.find(U,e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some(e=>this.test(e));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=Utils.find(R,e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some(e=>this.test(e));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:t}=this.getOS();return e?String(t).toLowerCase()||"":t||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:t}=this.getPlatform();return e?String(t).toLowerCase()||"":t||""}parsePlatform(){this.parsedResult.platform={};const e=Utils.find(N,e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some(e=>this.test(e));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const e=Utils.find(O,e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some(e=>this.test(e));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return Utils.assign({},this.parsedResult)}satisfies(e){const t={};let r=0;const i={};let s=0;if(Object.keys(e).forEach(o=>{const n=e[o];"string"==typeof n?(i[o]=n,s+=1):"object"==typeof n&&(t[o]=n,r+=1)}),r>0){const e=Object.keys(t),r=Utils.find(e,e=>this.isOS(e));if(r){const e=this.satisfies(t[r]);if(void 0!==e)return e}const i=Utils.find(e,e=>this.isPlatform(e));if(i){const e=this.satisfies(t[i]);if(void 0!==e)return e}}if(s>0){const e=Object.keys(i),t=Utils.find(e,e=>this.isBrowser(e,!0));if(void 0!==t)return this.compareVersion(i[t])}}isBrowser(e,t=!1){const r=this.getBrowserName().toLowerCase();let i=e.toLowerCase();const s=Utils.getBrowserTypeByAlias(i);return t&&s&&(i=s.toLowerCase()),i===r}compareVersion(e){let t=[0],r=e,i=!1;const s=this.getBrowserVersion();if("string"==typeof s)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(i=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(Utils.compareVersions(s,r,i))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,t=!1){return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some(e=>this.is(e))}}
|
|
2
2
|
/*!
|
|
3
3
|
* Bowser - a browser detector
|
|
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 w=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 u}static get ENGINE_MAP(){return g}static get OS_MAP(){return m}static get PLATFORMS_MAP(){return p}}.parse(window.navigator.userAgent),{platform:S,os:k,browser:A}=w,M=e=>e&&e.toLowerCase();var E={rnd:Math.random().toString(36).substr(2,32),os:M(k.name+(k.versionName?" "+k.versionName:"")),device:M(S.type),browser:M(A.name),browser_version:(A&&A.version?A.version:"unknown").split(".").shift(),plugin_version:"3.29.0"};const P="https://fp-eu-w1-aai.flowplayer.com/in",_="POST",T=["ad-requested","ad-request-error","ad-request-completed","ad-completed","ad-started","ad-error","ad-skipped"],C=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],U=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],N=c("ads/analytics"),R=RequestQueue.of(),O=(...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,O(e.metadata,t,{player_version:"3.29.0"})),e}constructor(e,t={}){this.emitter=e,this.metadata=O(E,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),N(this),this.wireup()}wireup(){this.events.forEach(e=>{this.emitter.on(e,t=>{const r=t.detail,i=O(this.metadata,{event_type:e},r),s=Analytics.pluck_valid_keys(this,i),o=Analytics.ensure_required_keys(this,s);if(N(`Event[${e}]`,{payload:s,observation:r}),o.length)return N(`Analytics.validate_metadata() failed for\n Event[${e}]\n missing keys: ${o}`,s);RequestQueue.rpush(R,[P,_,s])})})}destroy(){this.emitter=this.metadata=this.events=this.required_keys=this.optional_keys=this.valid_keys=void 0}}var F;function D(e,t){var r;switch(t){case F.Preroll:return 0;case F.Postroll:return-1;default:return null===(r=e.ssai)||void 0===r?void 0:r.provider.getContentCurrentTime(e)}}function I(e,t,r){var i,s,o,a;const n=null===(i=t.ssai)||void 0===i?void 0:i.provider.getAdType(),c=null===(a=null===(o=null===(s=t.ssai)||void 0===s?void 0:s.provider)||void 0===o?void 0:o.src)||void 0===a?void 0:a.analyticsId,d={ad_break_time:D(t,n),ad_muted:t.muted,event_type:e,is_ssai:!0};n&&Object.assign(d,{ad_type:n}),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 L(e,t){var r;e.setState("ssai-ad-active",!0);const i=null===(r=e.ssai)||void 0===r?void 0:r.state;i&&(i.adProgress={currentTime:0,duration:t},x(e,i))}function B(e,t){var r;const i=null===(r=e.ssai)||void 0===r?void 0:r.state;i&&(i.adProgress=t,x(e,i))}function q(e){if(!e.ssai)return;const t=e.ssai.state;e.setState("ssai-ad-active",!1),delete t.adProgress,void 0!==t.rate&&(e.playbackRate=t.rate,delete t.rate),"number"==typeof t.snapbackTime&&(i(e,t.snapbackTime),delete t.snapbackTime)}function x(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"}(F||(F={}));const j=navigator.languages||[navigator.language];const H="flowplayer-ssai-ui",V={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"},Q=Object.fromEntries(Object.entries(V).map(([e,t])=>[t,e])),K=[1e7]+""+-1e3+-4e3+-8e3+-1e11,z="off";class FlowplayerError extends Error{static getErrorKey(e){return e in Q?Q[e]:Q["00-00"]}constructor(e,t,r={}){super(e),this.message=e,this.flowplayerErrorCode=t,this.config=r,this.id="undefined"==typeof crypto?"":K.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 G(e,t){const r=new google.ima.dai.api.UiSettings,i=e.opt("lang")||function(){try{return j.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,H),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 a=i.getStreamData().streamId;if(!a||!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,a),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 n=null===(o=t.src)||void 0===o?void 0:o.requestStreamUrl;if(!n)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 n(r,a),r.loadStreamMetadata(),e.setSrc(t.daiStream)}catch(r){$(e,t,a)}}(e,i,t,r);case google.ima.dai.api.StreamEvent.Type.RESUMED:return I("ad-resumed",e,W(e,r,i));case google.ima.dai.api.StreamEvent.Type.PAUSED:return I("ad-paused",e,W(e,r,i));case google.ima.dai.api.StreamEvent.Type.COMPLETE:return I("ad-completed",e,W(e,r,i));case google.ima.dai.api.StreamEvent.Type.SKIPPED:return I("ad-skipped",e,W(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(),I("ad-started",e,W(e,r,i));case google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED:return L(e),I("ad-break-started",e,W(e,r,i));case google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED:return I(a,e,W(e,r,i)),q(e),i.currentAd=void 0;case google.ima.dai.api.StreamEvent.Type.ERROR:return $(e,i,r.getStreamData().url||"",r);case google.ima.dai.api.StreamEvent.Type.AD_PROGRESS:{const t=W(e,r,i);return B(e,t),I("ad-progress",e,t)}case google.ima.dai.api.StreamEvent.Type.CLICK:(function(e,t){if(!e.paused)e.togglePlay(!1)})(e)}}(e,s,r,t)},!1),e.on("ssai:hls:metadata",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("ssai:dash:metadata",r=>{var i;const o=r.detail;if(!o||(null===(i=e.ssai)||void 0===i?void 0:i.provider)!==t)return;const a=o.event.messageData,n=o.event.calculatedPresentationTime;s.processMetadata("urn:google:dai:2018",a,n)}),s}function W(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 $(e,t,r,i){var s,o,a,n,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",V.AdsUnknown,{isFatal:!0,showErrorUI:!(null===(o=t.src)||void 0===o?void 0:o.backupStream),resource:(null===(a=null==i?void 0:i.getStreamData())||void 0===a?void 0:a.url)||(null===(n=t.src)||void 0===n?void 0:n.contentSourceId)||r,retryOpts:{retry:z}})}),(null===(c=t.src)||void 0===c?void 0:c.backupStream)&&e.setSrc(t.src.backupStream)}var Y;!function(e){e.Preroll="preroll",e.Midroll="midroll",e.Postroll="postroll"}(Y||(Y={}));const X=c("ads/ima/sdk");var Z;async function J(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 X(":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 ee(i,t,r);i=document.createElement("script"),i.setAttribute("state",Z.LOADING),ee(i,t,r),i.src=e,document.head.appendChild(i)})}(s),void X(":loaded")}catch(e){X(":error "+e.message,e)}}function ee(e,t,r){const i=e.getAttribute("state");if(i&&[Z.ERROR,Z.LOADED].includes(i))return t(void 0);e.addEventListener("load",()=>{e.setAttribute("state",Z.LOADED),t(void 0)},{once:!0}),["error","abort"].forEach(t=>{e.addEventListener(t,()=>{e.setAttribute("state",Z.ERROR),r("script failed to load")},{once:!0})})}!function(e){e.LOADING="loading",e.LOADED="loaded",e.ERROR="error"}(Z||(Z={}));class Dai{constructor(e){this.make_analytics(e)}async onload(e,t){var r,i;return await J(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=G(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:C,events:T,optional_keys:U});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 Y.Preroll;case-1:return Y.Postroll;case-2:return;default:return Y.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 te=window.YospaceAdManagement||{AnalyticEventObserver:null};class EventObserver extends te.AnalyticEventObserver{constructor(e){super(),this.video=e}onAdvertBreakStart(e){const t=e.getDuration();if(!e.isActive()&&t){const e=r(this.video);i(this.video,e+t/1e3)}L(this.video,e.getStart()),I("ad-break-started",this.video)}onAdvertBreakEnd(){q(this.video),I(a,this.video)}onAdvertStart(e){}onAdvertEnd(){}onTrackingEvent(e){}}function re(e,t){YospaceAdManagement.SessionVOD.create(e,t.ssai.properties,e=>{const i=e.getPayload();if(i.getSessionResult()===YospaceAdManagement.SessionResult.INITIALISED){t.ssai.session=i;const e=new EventObserver(t);i.addAnalyticObserver(e),t.setSrc({src:i.getPlaybackUrl()}),setInterval(()=>{const e=1e3*r(t);i.onPlayheadUpdate(e),function(e,t,r){const i=e.getCurrentAdBreak();if(!i)return;const s={currentTime:r-i.getStart(),duration:i.getDuration()};B(t,s),I("ad-progress",t,s)}(i,t,e)},250)}else console.warn("YoSpace Failed to initialise session. ResultCode = "+i.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 r(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 i(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 o(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&&re(t.src,e)}getContentCurrentTime(e){const t=r(e),i=e.ssai.session;return i?i.getContentPositionForPlayhead(1e3*t)/1e3:t}setContentCurrentTime(e,t){const r=e.ssai.session;if(!r)return i(e,t);return i(e,r.getPlayheadForContentPosition(1e3*t)/1e3)}getContentDuration(e){const t=e.ssai.session,r=o(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 ie(e){var t;if((null===(t=this.player.ssai)||void 0===t?void 0:t.provider)===this)switch(e.type){case"playing":case"pause":return function(e){if(!e.player.hasState("ssai-ad-active"))return;return I(e.player.paused?"ad-paused":"ad-resumed",e.player)}(this);case"progress":return function(e){const t=e.player,r=t.hls;if(!r)return;if(t.hasState("ssai-ad-active"))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 a=e.getAdCues().find(e=>!e.played&&e.endTime>s&&e.startTime<=s);return r.config.maxBufferLength=a?1:30}(this);case"timeupdate":return function(e){if(!e.activeCue||!e.player.hasState("ssai-ad-active"))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},I("ad-progress",e.player,Object.assign(Object.assign({},e.ad),e.podInfo));if(e.podInfo.totals!==e.podInfo.position)return;se(e)}(this);case"ended":return se(this)}}function se(e){e.activeCue&&e.player.hasState("ssai-ad-active")&&(I("ad-completed",e.player),I(a,e.player),q(e.player),e.activeCue.played=!0,e.activeCue=void 0)}Yospace.Type="yospace";var oe=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 a=r[o];return i.call(e,o)?e[o]=t.merge(e[o],a,s):e[o]=a,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=[],a=0;a<e.length;++a)e[a]&&"object"==typeof e[a]?o.push(t.compact(e[a],i)):void 0!==e[a]&&o.push(e[a]);return o}for(var n=Object.keys(e),c=0;c<n.length;++c){var d=n[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))}})),ae={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},ne={delimiter:"&",strictNullHandling:!1,skipNulls:!1,encode:!0,encoder:oe.encode},ce=function e(t,r,i,s,o,a,n,c,d){var l=t;if("function"==typeof n)l=n(r,l);else if(l instanceof Date)l=l.toISOString();else if(null===l){if(s)return a?a(r):r;l=""}if("string"==typeof l||"number"==typeof l||"boolean"==typeof l||oe.isBuffer(l))return a?[a(r)+"="+a(l)]:[r+"="+String(l)];var u,p=[];if(void 0===l)return p;if(Array.isArray(n))u=n;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,a,n,c,d)):p.concat(e(l[f],r+(d?"."+f:"["+f+"]"),i,s,o,a,n,c,d)))}return p},de=Object.prototype.hasOwnProperty,le={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1,allowDots:!1,decoder:oe.decode},ue=function(e,t,r){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,o=/(\[[^[\]]*])/.exec(i),a=o?i.slice(0,o.index):i,n=[];if(a){if(!r.plainObjects&&de.call(Object.prototype,a)&&!r.allowPrototypes)return;n.push(a)}for(var c=0;null!==(o=s.exec(i))&&c<r.depth;){if(c+=1,!r.plainObjects&&de.call(Object.prototype,o[1].slice(1,-1))&&!r.allowPrototypes)return;n.push(o[1])}return o&&n.push("["+i.slice(o.index)+"]"),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 a="["===o.charAt(0)&&"]"===o.charAt(o.length-1)?o.slice(1,-1):o,n=parseInt(a,10);!isNaN(n)&&o!==a&&String(n)===a&&n>=0&&i.parseArrays&&n<=i.arrayLimit?(s=[])[n]=e(t,r,i):s[a]=e(t,r,i)}return s}(n,t,r)}},pe=function(e,t){var r,i,s=e,o=t||{},a=void 0===o.delimiter?ne.delimiter:o.delimiter,n="boolean"==typeof o.strictNullHandling?o.strictNullHandling:ne.strictNullHandling,c="boolean"==typeof o.skipNulls?o.skipNulls:ne.skipNulls,d=("boolean"==typeof o.encode?o.encode:ne.encode)?"function"==typeof o.encoder?o.encoder:ne.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 ae?o.arrayFormat:"indices"in o?o.indices?"indices":"repeat":"indices";var g=ae[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(ce(s[h],h,g,n,c,d,i,l,u)))}return m.join(a)},me=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||oe.isRegExp(r.delimiter)?r.delimiter:le.delimiter,r.depth="number"==typeof r.depth?r.depth:le.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:le.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:le.decoder,r.allowDots="boolean"==typeof r.allowDots?r.allowDots:le.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:le.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:le.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:le.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:le.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,a,n=i[s],c=-1===n.indexOf("]=")?n.indexOf("="):n.indexOf("]=")+1;-1===c?(o=t.decoder(n),a=t.strictNullHandling?null:""):(o=t.decoder(n.slice(0,c)),a=t.decoder(n.slice(c+1))),de.call(r,o)?r[o]=[].concat(r[o]).concat(a):r[o]=a}return r}(e,r):e,s=r.plainObjects?Object.create(null):{},o=Object.keys(i),a=0;a<o.length;++a){var n=o[a],c=ue(n,i[n],r);s=oe.merge(s,c,r)}return oe.compact(s)};const ge=c("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),a=e[s];return null===a?(i[o]=a,i):"object"==typeof a?(i[o]=Macros.process_obj(a,t,r),i):"string"==typeof a?(i[o]=Macros.process_str(a,t,r),i):(console.error(new Error(`${a} 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],a=i?o:Macros.cast(o);return ge("Macro.replace(raw: %s, macro: %s, value: %s)",i,t,a),a})}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=me(s||"",{strictNullHandling:!0,decoder:e=>e}),a=pe(Macros.process_obj(o,this,r),{encode:!1,strictNullHandling:!0});return Macros.process_str(i,this,r,!0)+"?"+a}}function he(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:a}=e||{},n=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:a,videourl:a},n)}Macros.patterns={BRACKETS:fe,CURLY:/\{([\s\S]+?)\}/g,UNDERSCORE:/__([\s\S]+?)__/g};class MediaTailor{constructor(e){this.ad={duration:0,currentTime:0},this.podInfo={totals:0,position:0},this.player=e,e.on(["timeupdate","progress","playing","pause","ended"],ie.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=he(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("X-AD-CREATIVE-SIGNALING"!==(null===(t=e.value)||void 0===t?void 0:t.key))return;if(this.activeCue)return I("ad-completed",this.player),this.activeCue.played=!0,this.activeCue=e,++this.podInfo.position,I("ad-started",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,L(this.player),this.setPodInfo(e),I("ad-break-started",this.player),I("ad-started",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=F.Midroll:e.startTime<=1?this.ad_type=F.Preroll:Math.abs(t[r-1].endTime-this.player.duration)<=1?this.ad_type=F.Postroll:this.ad_type=F.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"X-AD-CREATIVE-SIGNALING"===(null===(t=e.value)||void 0===t?void 0:t.key)})}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 ye=(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),ve=(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("flowplayer-ssai-controls","flowplayer-ssai-indicator"))}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(a,()=>{t.classList.remove("go"),"--ssai-percent-complete --ssai-percent-previous".split(" ").forEach(e=>this.style.setProperty(e,"0"))}),this.player.on("ad-progress",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 a=s/o*100,n=t.style.getPropertyValue("--ssai-percent-complete");t.classList.remove("go"),t.style.setProperty("--ssai-percent-previous",n),t.style.setProperty("--ssai-percent-complete",a.toFixed(3)),t.classList.add("go")})}}function be(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}function we(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+":"+be(i)+":"+be(e)):t+be(i)+":"+be(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("ad-progress",e=>{const i=e.detail;i&&(t.textContent=we(i.currentTime||0),r.textContent=we(i.duration||0))}),this.append(...this.player.createComponents("flowplayer-control-buttons"),t,...this.player.createComponents("flowplayer-ssai-timeline"),r,...this.player.createComponents("flowplayer-volume-control"))}}class SSAIAdIndicator extends FlowplayerComponent{constructor(e){super(e),this.className="fp-ssai-indicator",this.player.on("ad-started",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 Se,ke=Object.freeze({__proto__:null,ID3:"ID3"});const Ae=((Se=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",Se.events=ke,Se),Me=e(window,Ae);var Ee;const Pe=((Ee=class Ssai{constructor(e,t){this.umd=e,this.providers=[],this.player=t,ve(e,H,SSAIAdUi),ve(e,"flowplayer-ssai-timeline",SSAITimeline),ve(e,"flowplayer-ssai-controls",SSAIControls),ve(e,"flowplayer-ssai-indicator",SSAIAdIndicator)}init(e,t,s){const o=ye(s,H);if(t.append(o),s.on(Me.events.ID3,({detail:e})=>{var t,r,i;const o=null==e?void 0:e.cue;o&&(null===(i=null===(t=s.ssai)||void 0===t?void 0:(r=t.provider).onId3)||void 0===i||i.call(r,o))}),s.on("seeked",()=>function(e){if(e.opt("live"))return;if(!e.ssai)return;const{provider:t,state:s}=e.ssai;if(s.snapback)return s.snapback=!1;const o=r(e),a=t.getPreviousActiveAdStart(e,o);void 0!==a&&(s.snapback=!0,s.snapbackTime=o,i(e,a))}(s)),s.on("src",e=>{var t,r,i;s.setState("ssai-ad-active",!1),null===(i=null===(r=null===(t=s.ssai)||void 0===t?void 0:t.provider)||void 0===r?void 0:r.onNewSrc)||void 0===i||i.call(r,s,e.detail)}),this.umd.extensions.find(e=>e.pluginName===Me.pluginName))return;new Me(this.umd,s).init(e,t,s)}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=void 0;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",Ee.events=n,Ee);return e(window,Pe)}));
|
|
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.30.0"};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.30.0"})),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)});
|
package/plugins/subtitles.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { BitrateInfo } from 'dashjs';
|
|
2
1
|
import type { Get } from 'type-fest';
|
|
3
2
|
import type hlsjs from 'hls.js';
|
|
4
3
|
import type { Level } from 'hls.js';
|
|
5
4
|
import type { LevelAttributes } from 'hls.js';
|
|
5
|
+
import type { Representation } from 'dashjs';
|
|
6
6
|
import type { TupleToUnion } from 'type-fest';
|
|
7
7
|
|
|
8
8
|
/* Excluded from this release type: AnyLoader */
|
|
@@ -1525,7 +1525,7 @@ PROGRESS = "progress";
|
|
|
1525
1525
|
*/
|
|
1526
1526
|
declare type QselOption = (Level & {
|
|
1527
1527
|
level: number;
|
|
1528
|
-
}) |
|
|
1528
|
+
}) | Representation | {
|
|
1529
1529
|
name: string | number;
|
|
1530
1530
|
encodingId: string;
|
|
1531
1531
|
spatialLayerId: number;
|
|
@@ -1573,8 +1573,8 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1573
1573
|
* @public
|
|
1574
1574
|
*/
|
|
1575
1575
|
declare type QualityChangeEventDetail = {
|
|
1576
|
-
before?: Level |
|
|
1577
|
-
after?: Level |
|
|
1576
|
+
before?: Level | Representation;
|
|
1577
|
+
after?: Level | Representation;
|
|
1578
1578
|
plugin: string;
|
|
1579
1579
|
automatic: boolean;
|
|
1580
1580
|
/* Excluded from this release type: downscale */
|