@flowplayer/player 3.43.1-rc → 3.43.1
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/package.json +1 -1
- package/plugins/ads.js +2 -2
- package/plugins/airplay.js +1 -1
- package/plugins/analytics.js +1 -1
- package/plugins/asel.js +1 -1
- package/plugins/audio.js +1 -1
- package/plugins/chapters.js +1 -1
- package/plugins/chromecast.js +1 -1
- package/plugins/consent.js +1 -1
- package/plugins/context-menu.js +1 -1
- package/plugins/cuepoints.js +1 -1
- package/plugins/dash.js +2 -2
- package/plugins/drm.js +1 -1
- package/plugins/endscreen.js +1 -1
- package/plugins/fas.js +1 -1
- package/plugins/float-on-scroll.js +1 -1
- package/plugins/hls.d.ts +25 -2
- package/plugins/hls.js +1 -1
- package/plugins/id3.js +1 -1
- package/plugins/iframe.js +1 -1
- package/plugins/keyboard.js +1 -1
- package/plugins/media-session.js +1 -1
- package/plugins/message.js +1 -1
- package/plugins/playlist.js +1 -1
- package/plugins/preview.js +1 -1
- package/plugins/qsel.js +1 -1
- package/plugins/qul.js +1 -1
- package/plugins/rts.js +2 -2
- package/plugins/share.js +1 -1
- package/plugins/speed.js +1 -1
- package/plugins/ssai.js +1 -1
- package/plugins/subtitles.js +1 -1
- package/plugins/thumbnails.js +1 -1
- package/plugins/tizen.js +1 -1
- package/plugins/webos.js +1 -1
package/plugins/airplay.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.airplay=t())}(this,function(){"use strict";const e=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const
|
|
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.airplay=t())}(this,function(){"use strict";const e=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const a=window.customElements.get(t);if(!a)throw new Error(`no default flowplayer component with the name ${t} exists`);const r=window.customElements.get(n);return"function"!=typeof r?a:r})(e._customElements,t))(e);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 t="flowplayer-airplay-icon";var n=Object.freeze({__proto__:null,START:"airplay:start",STOP:"airplay:stop"});const a={name:"fp-airplay"},r=1,i=.001;const s=new WeakMap;function o(e,t,n="used"){var a;const o=`${t}:${n}`,l=null!==(a=s.get(e))&&void 0!==a?a:new Set;if(l.has(o))return;l.add(o),s.set(e,l);const c=()=>function(e,{feature_name:t,behavior:n,sample_rate:a}){t&&(a||(a=r),e.emit("flowplayer:feature",{feature_name:t,behavior:n,sample_rate:a}))}(e,{feature_name:t,behavior:n,sample_rate:i});e.opt("metadata.media_id")?c():e.once("health:ready",c)}var l;const c=((l=class Airplay{static unsupported(){return!("WebKitPlaybackTargetAvailabilityEvent"in window)}static update(e,t){const n=t.availability===l.AVAILABLE&&!!e.currentSrc&&0!==e.currentSrc.indexOf("blob");e.setState(l.AVAILABLE_CLASS,n)}static render(n){var a;const r=e(n,t);null===(a=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(n,"flowplayer-header-right-zone"))||void 0===a||a.prepend(r)}constructor(e){((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,t,class extends FlowplayerIcon{constructor(e){super(e,a),this.addEventListener("click",function(){e.webkitShowPlaybackTargetPicker()})}})}init({airplay:e,hls:t},n,a){l.unsupported()||!1===e||(a.setOpts({hls:Object.assign({},{native:!0},t)}),l.render(a),a.setAttribute("x-webkit-airplay","allow"),a.on(l.AVAILABILITY_CHANGE,function(e){l.update(a,e)}),a.on(l.WIRELESS_CHANGE,function(){return a.webkitCurrentPlaybackTargetIsWireless&&o(a,"airplay"),a.emit(a.webkitCurrentPlaybackTargetIsWireless?l.events.START:l.events.STOP),a.setState(l.ACTIVE_CLASS,a.webkitCurrentPlaybackTargetIsWireless)}))}}).pluginName="airplay",l.ACTIVE_CLASS="is-airplay",l.AVAILABLE_CLASS="is-airplay-available",l.AVAILABILITY_CHANGE="webkitplaybacktargetavailabilitychanged",l.WIRELESS_CHANGE="webkitcurrentplaybacktargetiswirelesschanged",l.AVAILABLE="available",l.events=n,l);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const n=e.flowplayer;return"function"==typeof n?(n(t),t):(Array.isArray(n.extensions)||(n.extensions=[]),~n.extensions.indexOf(t)||n.extensions.push(t),t)}(window,c)});
|
package/plugins/analytics.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.analytics=t())}(this,function(){"use strict";const e=(...e)=>e.reduce((e,t)=>Object.assign(Object.assign({},e),t),{}),t=(e,t)=>{const r=e.lastIndexOf(t);return~r&&e.splice(r,1),e};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 e;if(RequestQueue.is_high_water(e))return e;try{const t=RequestQueue.lpop(e);t&&RequestQueue.request(e,t)}catch(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,n]){if(Date.now()<e.stats.ttl)return;const i=new XMLHttpRequest;e.open.push(i),i.timeout=RequestQueue.REQUEST_TIMEOUT_MS,i.ontimeout=function(){RequestQueue.handle_error(e,i)},i.onerror=function(t){RequestQueue.handle_error(e,i)},i.onreadystatechange=function(){i.readyState==XMLHttpRequest.DONE&&RequestQueue.rm(e,i),Math.floor(i.status/100)},i.onload=function(){RequestQueue.rm(e,i),e.stats.failures&&e.stats.failures--},i.open(r,t),i.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{i.send(JSON.stringify(n))}catch(e){}}static rpush(e,...t){return t.forEach(t=>{e.pending.length>=RequestQueue.MAX_PENDING||(e.pending.push(t),RequestQueue.maybe_spawn_req(e))}),e}static lpop(e){return e.pending.shift()}static rm(e,r){return t(e.open,r),e}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}RequestQueue.MAX_OPEN_REQUESTS=3,RequestQueue.MAX_PENDING=5,RequestQueue.REQUEST_TIMEOUT_MS=4e3,RequestQueue.REQUEST_TTL_MS=5e3,RequestQueue.MAX_FAILURE_COUNT=3;var r=RequestQueue.of();const n=/:([a-zA-Z_]+)/g;class Log{static prepare(e,t){const r=document.createEvent("Event");return r.initEvent(e,!1,!0),r.ns=e,r.data=t,r}static of(e){return new Log(e)}constructor(e){this.emitter=e}info(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.INFO,e))}error(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.ERROR,e))}warn(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.WARN,e))}}var i;Log.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(e){e.POST="POST",e.PUT="PUT",e.GET="GET"}(i||(i={}));class Tracker{static of(e,t){return new Tracker(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(t,r){return((t,...r)=>Object.keys(t).filter(e=>~r.indexOf(e)).reduce((r,n)=>e(r,{[n]:t[n]}),{}))(r,...t.valid_keys)}static merge_metadata(t,r={}){return t.metadata=Tracker.pluck_valid_keys(t,e(t.metadata,r)),t}static assert_emitter_api(e){if("function"!=typeof(e||{}).addEventListener)throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if("function"!=typeof(e||{}).removeEventListener)throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(e,t,r){var n;e.listeners.push([t,r]),null===(n=e.emitter)||void 0===n||n.addEventListener(t,r)}constructor(t,i={}){const o=this;if(this.emitter=t,this.url=i.url,this.log=Log.of(this.emitter),this.verb=i.verb,this.metadata=e({},i.metadata||{}),this.rq=i.rq||r,this.events=i.events||[],this.required_keys=i.required_keys||[],this.optional_keys=i.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Tracker.assert_emitter_api(this.emitter),void 0===Tracker.verb[this.verb])throw new Error(`invalid HTTP verb[${this.verb}] passed`);if("string"!=typeof this.url)throw new Error(`invalid API url[${this.url}] passed`);Tracker.TRACKERS.push(this),o.events.forEach(t=>{Tracker.create_listener(this,t,(r={})=>{var i;if(null===(i=this.emitter)||void 0===i?void 0:i.hasState("consent-no-tracking"))return;const a=e(o.metadata,{event_type:t},r.data||r),s=function(e,t){return e.replace(n,e=>{const r=e.slice(1,e.length);return r in t?t[r].toString():e})}(o.url,a),u=Tracker.pluck_valid_keys(o,a),d=Tracker.ensure_required_keys(o,u);if(d.length)return o.log.error(`Tracker.validate_metadata() failed for\n Event[${t}]\n missing keys: ${d}\n payload:\n ${JSON.stringify(u,null,2)}`);this.rq&&RequestQueue.rpush(this.rq,[s,this.verb,u])})})}destroy(){this.listeners.forEach(([e,t])=>{var r;return null===(r=this.emitter)||void 0===r?void 0:r.removeEventListener(e,t)}),delete this.rq,delete this.emitter,t(Tracker.TRACKERS,this)}put(e={}){return Tracker.merge_metadata(this,e),this}}var o;Tracker.TRACKERS=[],Tracker.QUEUE=r,Tracker.verb=i,function(e){e[e.ADS=2]="ADS",e[e.ANALYTICS=4]="ANALYTICS",e[e.NO_METERING=8]="NO_METERING",e[e.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",e[e.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(o||(o={}));const a=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function s(e,t){return!!~a.indexOf(e)||e.indexOf(t)===e.length-t.length}s.check_whitelist=function(e){return!!~a.indexOf(e)};function u(e){this.message=e}u.prototype=new Error,u.prototype.name="InvalidCharacterError";var d="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new u("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,i=0,o=0,a="";n=t.charAt(o++);~n&&(r=i%4?64*r+n:n,i++%4)?a+=String.fromCharCode(255&r>>(-2*i&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return a};var c=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(d(e).replace(/(.)/g,function(e,t){var r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}(t)}catch(e){return d(t)}};function l(e){this.message=e}l.prototype=new Error,l.prototype.name="InvalidTokenError";var f=function(e,t){if("string"!=typeof e)throw new l("Invalid token specified");var r=!0===(t=t||{}).header?0:1;try{return JSON.parse(c(e.split(".")[r]))}catch(e){throw new l("Invalid token specified: "+e.message)}};f.InvalidTokenError=l;const p="production";function _(e,t){const r={valid_jwt:!1,raw:"",data:{acl:0},exp:0};let n={c:"{}",exp:0};t=t||{};try{n=f(e),r.valid_jwt=!0}catch(e){}return r.raw=e,r.data=JSON.parse(n.c),r.exp=n.exp,t.require_valid_token&&_.validate(r),r}function h(e){return{grant:e,is_granted:t=>(e&t)===t}}function m(e,t,r){const n=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;n.length;){if(null==e)return r;const t=n.shift();if("string"!=typeof t)return r;e=e[t]}return null==e?r:e}_.validate=function(e){if("string"==typeof e&&(e=_(e)),!e||!e.raw){if(s.check_whitelist(window.location.hostname)||"dev"===p.toString())return!0;throw new Error("No token provided in configuration")}if(!e.valid_jwt)throw new Error("Invalid token provided");const t=window.location.hostname,r=s.bind(null,t);if("dev"!==p.toString()&&e.data.domain&&e.data.domain.length&&!e.data.domain.some(r))throw new Error("Domain not allowed");if("dev"!==p.toString()&&1e3*e.exp-Date.now()<0)throw new Error("Expired token");return!0},_.id=function(e){if(e)return"string"==typeof e&&(e=_(e)),e.data.id},h.of=h,h.from_token=function(e){const t=_(e,{require_valid_token:!0});return h.of(t.data.acl)},h.permissions=o;var v="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};var y="ping",k="display",g="view";const w=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],E=["created","position"],T=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];const R="is-seeking";const q=100,A=1e3;function S(e,t){return e.duration/1===e.duration&&Object.assign(t,function(e){const t=e/q;return{segment_duration:t,breakpoints:Array(...Array(q)).map(function(e,r){return Math.floor(r*t*A)/A})}}(e.duration))}function O(e,t,r,n){if(!t.segment_duration&&!S(e,t))return;const i=function(e,t,r,n){const i=t.last_idx,o=r?100:b(e,t,n);return t.last_idx=o,o<=i?[]:t.breakpoints.slice(i,o).map(function(e){return t.breakpoints.indexOf(e)})}(e,t,r,n);0!=i.length&&e.emit(y,{position:i})}function b(e,t,r){const n=void 0!==r?r:e.currentTime;return Math.min(100,Math.max(0,Math.floor(n/t.segment_duration-.8)+1))}function N(){try{const e=window.location!==window.parent.location?document.referrer:document.location.href;return"string"==typeof e&&e.slice(0,200)}catch(e){return!1}}var Q;const x="vod",L="live",I=[k,y,g];function M(e,t,r,n){switch(null==t?void 0:t.kind){case"live":return function(e,t){const r=Date.now();r-t.last_tracked_ts<6e4||(t.last_tracked_ts=r,++t.ticks,e.emit(y,{position:60*t.ticks}))}(e,t);case"vod":return O(e,t,"boolean"==typeof r&&r,n)}}function P(e){const t=e.ads;return void 0!==t&&(void 0!==t.schedule&&("function"==typeof t.hasPreroll&&(t.currentRequests?t.currentRequests:!!t.adPlaying||!(!t.hasPreroll()||0!=t.nextIndex))))}const C=((Q=class Analytics{init(e,t,r){if(!h.from_token(e.token||"").is_granted(h.permissions.ANALYTICS))return;if(r.analytics)return;const n=r.analytics={ticker:void 0,last_media_id:"",ended:!1,played:!1},i={locked:void 0,ttl:6e3,task:()=>{r.hasState(R)||M(r,n.ticker)}};const o={session_id:r.deviceId(),autoplay:r.autoplay,muted:r.muted,player_id:e.player_id,customer_user_id:e.customer_user_id,player_version:"3.43.1-rc"},a=Tracker.of(r,{verb:Tracker.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:I,required_keys:w,optional_keys:T.concat(E).slice(0),metadata:o});r.on("reap",function(){a&&a.destroy()});let s=0,u=0;r.on("config",function(t){if(!a)return;const i=m(t,"data.metadata",{});if(!i.media_id&&i.stream_target_id&&(i.media_id=i.stream_target_id),!i.media_id)return n.last_media_id="";if(n.last_media_id===i.media_id)return;n.played=!1,n.last_media_id=i.media_id;const o=m(e,"analytics",{});a.put(i),a.put(o);const u=m(e,"metadata.live_start_time",e.live)?L:x;a.put({video_type:u,source:e.source||N()||""}),n.ticker=m(e,"metadata.live_start_time",e.live)?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},s=0,n.ended=!1,r.emit(k)}),r.on("playing",function(){if(!a)return;if(u||n.played||!n.last_media_id)return;a.put({muted:r.muted});const e=P(r);if(e)return u=Promise.resolve(e).then(function(){n.played=!0,r.emit(g),u=0}).catch(function(){u=0});n.played=!0,r.emit(g)}),r.on("timeupdate",function(){var t;a&&(s=r.currentTime,u||P(r)||n.ended||!n.last_media_id||r.hasState(R)||(!e.live&&r.currentTime+.25>=r.duration&&M(r,n.ticker,!0),(t=i).locked||(t.locked=setTimeout(function(){return t.task(),function(e){return e.locked=void 0,e}(t)},t.ttl))))}),r.on("seeked",function(){var e;a&&n.last_media_id&&(n.ended&&(n.ended=!1,s=0,"vod"===(null===(e=n.ticker)||void 0===e?void 0:e.kind)&&(n.ticker.last_idx=0)),n.ticker&&"vod"==n.ticker.kind&&function(e,t){S(e,t),t.last_idx=b(e,t)}(r,n.ticker))}),r.on("timeline/gesture/start",function(){M(r,n.ticker,!1,s)}),r.on("ended",function(){a&&n.last_media_id&&function(e,t){t.ended||(t.ended=!0,M(e,t.ticker))}(r,n)})}}).pluginName="analytics",Q),U=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 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)}("undefined"!=typeof window?window:void 0!==v?v:{},C);return U});
|
|
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.analytics=t())}(this,function(){"use strict";const e=(...e)=>e.reduce((e,t)=>Object.assign(Object.assign({},e),t),{}),t=(e,t)=>{const r=e.lastIndexOf(t);return~r&&e.splice(r,1),e};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 e;if(RequestQueue.is_high_water(e))return e;try{const t=RequestQueue.lpop(e);t&&RequestQueue.request(e,t)}catch(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,n]){if(Date.now()<e.stats.ttl)return;const i=new XMLHttpRequest;e.open.push(i),i.timeout=RequestQueue.REQUEST_TIMEOUT_MS,i.ontimeout=function(){RequestQueue.handle_error(e,i)},i.onerror=function(t){RequestQueue.handle_error(e,i)},i.onreadystatechange=function(){i.readyState==XMLHttpRequest.DONE&&RequestQueue.rm(e,i),Math.floor(i.status/100)},i.onload=function(){RequestQueue.rm(e,i),e.stats.failures&&e.stats.failures--},i.open(r,t),i.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{i.send(JSON.stringify(n))}catch(e){}}static rpush(e,...t){return t.forEach(t=>{e.pending.length>=RequestQueue.MAX_PENDING||(e.pending.push(t),RequestQueue.maybe_spawn_req(e))}),e}static lpop(e){return e.pending.shift()}static rm(e,r){return t(e.open,r),e}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}RequestQueue.MAX_OPEN_REQUESTS=3,RequestQueue.MAX_PENDING=5,RequestQueue.REQUEST_TIMEOUT_MS=4e3,RequestQueue.REQUEST_TTL_MS=5e3,RequestQueue.MAX_FAILURE_COUNT=3;var r=RequestQueue.of();const n=/:([a-zA-Z_]+)/g;class Log{static prepare(e,t){const r=document.createEvent("Event");return r.initEvent(e,!1,!0),r.ns=e,r.data=t,r}static of(e){return new Log(e)}constructor(e){this.emitter=e}info(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.INFO,e))}error(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.ERROR,e))}warn(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.WARN,e))}}var i;Log.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(e){e.POST="POST",e.PUT="PUT",e.GET="GET"}(i||(i={}));class Tracker{static of(e,t){return new Tracker(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(t,r){return((t,...r)=>Object.keys(t).filter(e=>~r.indexOf(e)).reduce((r,n)=>e(r,{[n]:t[n]}),{}))(r,...t.valid_keys)}static merge_metadata(t,r={}){return t.metadata=Tracker.pluck_valid_keys(t,e(t.metadata,r)),t}static assert_emitter_api(e){if("function"!=typeof(e||{}).addEventListener)throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if("function"!=typeof(e||{}).removeEventListener)throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(e,t,r){var n;e.listeners.push([t,r]),null===(n=e.emitter)||void 0===n||n.addEventListener(t,r)}constructor(t,i={}){const o=this;if(this.emitter=t,this.url=i.url,this.log=Log.of(this.emitter),this.verb=i.verb,this.metadata=e({},i.metadata||{}),this.rq=i.rq||r,this.events=i.events||[],this.required_keys=i.required_keys||[],this.optional_keys=i.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Tracker.assert_emitter_api(this.emitter),void 0===Tracker.verb[this.verb])throw new Error(`invalid HTTP verb[${this.verb}] passed`);if("string"!=typeof this.url)throw new Error(`invalid API url[${this.url}] passed`);Tracker.TRACKERS.push(this),o.events.forEach(t=>{Tracker.create_listener(this,t,(r={})=>{var i;if(null===(i=this.emitter)||void 0===i?void 0:i.hasState("consent-no-tracking"))return;const a=e(o.metadata,{event_type:t},r.data||r),s=function(e,t){return e.replace(n,e=>{const r=e.slice(1,e.length);return r in t?t[r].toString():e})}(o.url,a),u=Tracker.pluck_valid_keys(o,a),d=Tracker.ensure_required_keys(o,u);if(d.length)return o.log.error(`Tracker.validate_metadata() failed for\n Event[${t}]\n missing keys: ${d}\n payload:\n ${JSON.stringify(u,null,2)}`);this.rq&&RequestQueue.rpush(this.rq,[s,this.verb,u])})})}destroy(){this.listeners.forEach(([e,t])=>{var r;return null===(r=this.emitter)||void 0===r?void 0:r.removeEventListener(e,t)}),delete this.rq,delete this.emitter,t(Tracker.TRACKERS,this)}put(e={}){return Tracker.merge_metadata(this,e),this}}var o;Tracker.TRACKERS=[],Tracker.QUEUE=r,Tracker.verb=i,function(e){e[e.ADS=2]="ADS",e[e.ANALYTICS=4]="ANALYTICS",e[e.NO_METERING=8]="NO_METERING",e[e.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",e[e.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(o||(o={}));const a=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function s(e,t){return!!~a.indexOf(e)||e.indexOf(t)===e.length-t.length}s.check_whitelist=function(e){return!!~a.indexOf(e)};function u(e){this.message=e}u.prototype=new Error,u.prototype.name="InvalidCharacterError";var d="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new u("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,i=0,o=0,a="";n=t.charAt(o++);~n&&(r=i%4?64*r+n:n,i++%4)?a+=String.fromCharCode(255&r>>(-2*i&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return a};var c=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(d(e).replace(/(.)/g,function(e,t){var r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}(t)}catch(e){return d(t)}};function l(e){this.message=e}l.prototype=new Error,l.prototype.name="InvalidTokenError";var f=function(e,t){if("string"!=typeof e)throw new l("Invalid token specified");var r=!0===(t=t||{}).header?0:1;try{return JSON.parse(c(e.split(".")[r]))}catch(e){throw new l("Invalid token specified: "+e.message)}};f.InvalidTokenError=l;const p="production";function _(e,t){const r={valid_jwt:!1,raw:"",data:{acl:0},exp:0};let n={c:"{}",exp:0};t=t||{};try{n=f(e),r.valid_jwt=!0}catch(e){}return r.raw=e,r.data=JSON.parse(n.c),r.exp=n.exp,t.require_valid_token&&_.validate(r),r}function h(e){return{grant:e,is_granted:t=>(e&t)===t}}function m(e,t,r){const n=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;n.length;){if(null==e)return r;const t=n.shift();if("string"!=typeof t)return r;e=e[t]}return null==e?r:e}_.validate=function(e){if("string"==typeof e&&(e=_(e)),!e||!e.raw){if(s.check_whitelist(window.location.hostname)||"dev"===p.toString())return!0;throw new Error("No token provided in configuration")}if(!e.valid_jwt)throw new Error("Invalid token provided");const t=window.location.hostname,r=s.bind(null,t);if("dev"!==p.toString()&&e.data.domain&&e.data.domain.length&&!e.data.domain.some(r))throw new Error("Domain not allowed");if("dev"!==p.toString()&&1e3*e.exp-Date.now()<0)throw new Error("Expired token");return!0},_.id=function(e){if(e)return"string"==typeof e&&(e=_(e)),e.data.id},h.of=h,h.from_token=function(e){const t=_(e,{require_valid_token:!0});return h.of(t.data.acl)},h.permissions=o;var v="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};var y="ping",k="display",g="view";const w=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],E=["created","position"],T=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];const R="is-seeking";const q=100,A=1e3;function S(e,t){return e.duration/1===e.duration&&Object.assign(t,function(e){const t=e/q;return{segment_duration:t,breakpoints:Array(...Array(q)).map(function(e,r){return Math.floor(r*t*A)/A})}}(e.duration))}function O(e,t,r,n){if(!t.segment_duration&&!S(e,t))return;const i=function(e,t,r,n){const i=t.last_idx,o=r?100:b(e,t,n);return t.last_idx=o,o<=i?[]:t.breakpoints.slice(i,o).map(function(e){return t.breakpoints.indexOf(e)})}(e,t,r,n);0!=i.length&&e.emit(y,{position:i})}function b(e,t,r){const n=void 0!==r?r:e.currentTime;return Math.min(100,Math.max(0,Math.floor(n/t.segment_duration-.8)+1))}function N(){try{const e=window.location!==window.parent.location?document.referrer:document.location.href;return"string"==typeof e&&e.slice(0,200)}catch(e){return!1}}var Q;const x="vod",L="live",I=[k,y,g];function M(e,t,r,n){switch(null==t?void 0:t.kind){case"live":return function(e,t){const r=Date.now();r-t.last_tracked_ts<6e4||(t.last_tracked_ts=r,++t.ticks,e.emit(y,{position:60*t.ticks}))}(e,t);case"vod":return O(e,t,"boolean"==typeof r&&r,n)}}function P(e){const t=e.ads;return void 0!==t&&(void 0!==t.schedule&&("function"==typeof t.hasPreroll&&(t.currentRequests?t.currentRequests:!!t.adPlaying||!(!t.hasPreroll()||0!=t.nextIndex))))}const C=((Q=class Analytics{init(e,t,r){if(!h.from_token(e.token||"").is_granted(h.permissions.ANALYTICS))return;if(r.analytics)return;const n=r.analytics={ticker:void 0,last_media_id:"",ended:!1,played:!1},i={locked:void 0,ttl:6e3,task:()=>{r.hasState(R)||M(r,n.ticker)}};const o={session_id:r.deviceId(),autoplay:r.autoplay,muted:r.muted,player_id:e.player_id,customer_user_id:e.customer_user_id,player_version:"3.43.1"},a=Tracker.of(r,{verb:Tracker.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:I,required_keys:w,optional_keys:T.concat(E).slice(0),metadata:o});r.on("reap",function(){a&&a.destroy()});let s=0,u=0;r.on("config",function(t){if(!a)return;const i=m(t,"data.metadata",{});if(!i.media_id&&i.stream_target_id&&(i.media_id=i.stream_target_id),!i.media_id)return n.last_media_id="";if(n.last_media_id===i.media_id)return;n.played=!1,n.last_media_id=i.media_id;const o=m(e,"analytics",{});a.put(i),a.put(o);const u=m(e,"metadata.live_start_time",e.live)?L:x;a.put({video_type:u,source:e.source||N()||""}),n.ticker=m(e,"metadata.live_start_time",e.live)?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},s=0,n.ended=!1,r.emit(k)}),r.on("playing",function(){if(!a)return;if(u||n.played||!n.last_media_id)return;a.put({muted:r.muted});const e=P(r);if(e)return u=Promise.resolve(e).then(function(){n.played=!0,r.emit(g),u=0}).catch(function(){u=0});n.played=!0,r.emit(g)}),r.on("timeupdate",function(){var t;a&&(s=r.currentTime,u||P(r)||n.ended||!n.last_media_id||r.hasState(R)||(!e.live&&r.currentTime+.25>=r.duration&&M(r,n.ticker,!0),(t=i).locked||(t.locked=setTimeout(function(){return t.task(),function(e){return e.locked=void 0,e}(t)},t.ttl))))}),r.on("seeked",function(){var e;a&&n.last_media_id&&(n.ended&&(n.ended=!1,s=0,"vod"===(null===(e=n.ticker)||void 0===e?void 0:e.kind)&&(n.ticker.last_idx=0)),n.ticker&&"vod"==n.ticker.kind&&function(e,t){S(e,t),t.last_idx=b(e,t)}(r,n.ticker))}),r.on("timeline/gesture/start",function(){M(r,n.ticker,!1,s)}),r.on("ended",function(){a&&n.last_media_id&&function(e,t){t.ended||(t.ended=!0,M(e,t.ticker))}(r,n)})}}).pluginName="analytics",Q),U=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 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)}("undefined"!=typeof window?window:void 0!==v?v:{},C);return U});
|
package/plugins/asel.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.asel=t())}(this,function(){"use strict";const e="click",t="audio:set",n="audio:update",s="audio:tracks";var i=Object.freeze({__proto__:null,SET:t,SWITCH:n,TRACKS:s});function
|
|
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.asel=t())}(this,function(){"use strict";const e="click",t="audio:set",n="audio:update",s="audio:tracks";var i=Object.freeze({__proto__:null,SET:t,SWITCH:n,TRACKS:s});function a(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 o=navigator.languages||[navigator.language];const r="@flowplayer/audio/track";function l(e){return e.toLowerCase()}function c(e,t,n){t=t.slice(0);const s={},i=e.getItem(r);let c=function(){try{return o.reduce((e,t)=>~t.indexOf("-")?e.concat(t,t.split("-")[0]):e.concat(t),[])}catch(e){return[]}}().map(l),u=-1;if("number"==typeof n)return n;for("string"==typeof n&&(n=n.toLowerCase(),~c.indexOf(n)&&c.splice(c.indexOf(n),1),c.unshift(l(n))),Array.isArray(n)&&(c=n.map(l));t.length;){++u;const e=t.shift();if(null==e?void 0:e.autoselect){if(i==e.lang)return console.debug("restoring lang from previous session: ",i),u;if(e.default&&(s.fallback=[u,e]),e.lang&&~c.indexOf(e.lang.toLowerCase())){const t=c.indexOf(e.lang);if(t<a(s,"by_lang.2",1/0)&&(s.by_lang=[u,e,t]),0===t)break}}}return a(s,"by_lang.0",a(s,"fallback.0",void 0))}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);class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}const d="has-menu-opened",m="fp-menu-container",f="fp-on",h="fp-invis",p="details[open]."+m;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=v(),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(m),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener(e,e=>{if(e.defaultPrevented)return;e.preventDefault();const n=this.menuContainer.open;n||(y(),document.active_menu=this.menuContainer),this.menuContainer.open=!n,t.root.classList.toggle(d,!n),this.summaryEle.setAttribute("aria-expanded",n?"false":"true")}),this.addEventListener("focusin",e=>{e.target;HTMLLIElement}),this.addEventListener("focusout",e=>{e.target;HTMLLIElement}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(e){if(this.className=e.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=e.id||v()),this.summaryEle.setAttribute("aria-label",e.menuTitle||"Menu"),e.summaryTitle&&(this.summaryEle.textContent=e.summaryTitle),e.summaryIcon){const t=u(this.player,e.summaryIcon);t.setAttribute("tabindex",""),this.summaryEle.append(t)}e.menuTitle&&(this.menuTitle.textContent=e.menuTitle),this.menu.classList.toggle("fp-icons",!!e.icons),this.addEventListener(e.options_event,e=>{this.render(e.data)}),e.item_selected_event&&this.addEventListener(e.item_selected_event,e=>{void 0!==e.data&&this.select_item(e.data.selected_index)})}render(e){this.olEle&&(this.olEle.innerHTML="",e&&e.forEach(this.menuOption,this),this.toggle_visibility(!(null==e?void 0:e.length)))}menuOption(t,n){const s=document.createElement("li");s.setAttribute("tabindex","0"),t.icon&&s.append(t.icon);const i=document.createElement("span");i.textContent=t.text,s.append(i),this.olEle.appendChild(s),t.isButton?(s.setAttribute("role","menuitem"),s.addEventListener(e,()=>{"function"==typeof t.onclick&&t.onclick()})):(s.setAttribute("role","menuitemradio"),s.setAttribute("aria-checked","false"),s.addEventListener(e,()=>{this.select_item(n),"function"==typeof t.onclick&&t.onclick()}),t.selected&&this.select_item(n))}select_item(e){var t;if(this.options[e]&&!(null===(t=this.options[e])||void 0===t?void 0:t.hasAttribute("aria-checked")))throw new Error("Cannot select a button-only item");this.options.forEach((t,n)=>{t.hasAttribute("aria-checked")&&(t.classList.toggle(f,n===e),t.setAttribute("aria-checked",n===e?"true":"false"))})}unselect_item(){this.options.forEach(e=>{e.classList.remove(f),e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked","false")})}toggle_visibility(e){this.classList.toggle(h,e),this.menu.style.setProperty("display",e?"none":"flex")}}function y(){Array.from(document.querySelectorAll(".fp-engine")).forEach(e=>{var t;const n=e.root.querySelector(p);n&&(n.open=!1,null===(t=n.querySelector("summary"))||void 0===t||t.removeAttribute("aria-expanded"),e.root.classList.toggle(d,!1))})}function v(){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)&&(y(),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 b="flowplayer-audio-menu",_=1,w=.001;const k=new WeakMap;function A(e,t,n="used"){var s;const i=`${t}:${n}`,a=null!==(s=k.get(e))&&void 0!==s?s:new Set;if(a.has(i))return;a.add(i),k.set(e,a);const o=()=>function(e,{feature_name:t,behavior:n,sample_rate:s}){t&&(s||(s=_),e.emit("flowplayer:feature",{feature_name:t,behavior:n,sample_rate:s}))}(e,{feature_name:t,behavior:n,sample_rate:w});e.opt("metadata.media_id")?o():e.once("health:ready",o)}var x;const L=((x=class Asel{constructor(e){((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,b,class extends FlowplayerMenu{})}init(e,o,l){if(!1===e.asel)return;let d=[];const m=u(l,b);m instanceof FlowplayerMenu&&m.setMenuAttrs({summaryTitle:l.i18n("audio.button_txt"),menuTitle:l.i18n("audio.menu_title"),class:"fp-asel",options_event:x.events.TRACKS,item_selected_event:x.events.SWITCH});const f=function(e){const n={tracks:[],events:i};return Object.assign(n,{set:function(s){if(!("number"!=typeof s||s<0||s>n.tracks.length-1))return e.emit(t,n.tracks[s]),n},get:function(e){if("number"==typeof e)return n.tracks[e]}}),n}(l);l.asel=f,l.on("mount",function(){var e;const t=null!==(e=E(l,l.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-asel-mount-zone"))&&void 0!==e?e:E(l,"flowplayer-control");null==t||t.append(m)}),l.on("src",()=>{f.tracks=[],f.active_track=void 0,g(m,x.events.TRACKS,[])}),l.on(s,function(n){if(!Array.isArray(n.data)||n.data.length===d.length&&n.data.every((e,t)=>e===d[t]))return;d=n.data,f.tracks=d.slice();const s=a(e,"asel.sort");"function"==typeof s&&f.tracks.sort(s),g(m,x.events.TRACKS,Array.from({length:f.tracks.length}).map((e,n)=>{const s=f.tracks[n];return{text:s.name||s.label||s.lang,onclick:()=>{A(l,"asel"),function(e,n){e.emit(t,n),n.autoselect&&e._storage.setItem(r,n.lang)}(l,s)}}})),f.active_track=f.tracks.find(e=>e.enabled),f.active_track&&g(m,x.events.SWITCH,{selected_index:f.tracks.indexOf(f.active_track)});const i=c(l._storage,f.tracks,a(e,"asel.default_lang",!1));return m instanceof FlowplayerMenu&&m.toggle_visibility(n.data.length<2),void 0!==i?f.set(i):void 0}),l.on(n,function(e){var t;null===(t=l.asel)||void 0===t||t.tracks.find((t,n)=>{var s,i;t!==e.detail&&t.id!==(null!==(i=null===(s=e.detail)||void 0===s?void 0:s.id)&&void 0!==i?i:-1)||(l.asel.active_track=t,g(m,x.events.SWITCH,{selected_index:n}))})}),l.audioTracks&&(l.audioTracks.addEventListener("addtrack",function(){l.hls||l.emit(s,Array.from(l.audioTracks))}),l.on(t,function(e){if(l.hls)return;const t=e.detail;f.active_track=t,t&&Array.from(l.audioTracks).forEach(e=>{e.enabled=t.id===e.id,e.enabled&&g(m,x.events.SWITCH,{selected_index:f.tracks.indexOf(t)})})}))}}).pluginName="asel",x.events=i,x);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,L)});
|
package/plugins/audio.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(n
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.audio=n())}(this,function(){"use strict";function e(e,n,t){const o=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(n);for(;o.length;){if(null==e)return t;const n=o.shift();if("string"!=typeof n)return t;e=e[n]}return null==e?t:e}const n=1,t=.001;const o=new WeakMap;function i(e,i,a="used"){var r;const u=`${i}:${a}`,s=null!==(r=o.get(e))&&void 0!==r?r:new Set;if(s.has(u))return;s.add(u),o.set(e,s);const d=()=>function(e,{feature_name:t,behavior:o,sample_rate:i}){t&&(i||(i=n),e.emit("flowplayer:feature",{feature_name:t,behavior:o,sample_rate:i}))}(e,{feature_name:i,behavior:a,sample_rate:t});e.opt("metadata.media_id")?d():e.once("health:ready",d)}class Audio{constructor(e){this.umd=e}init(n,t,o){var a,r;let u=n.poster,s=!1,d=!1;function l(){s&&i(o,"audio"),o.setState("is-audio-player",s),o.setState("show-controls-only",!u)}function f(){var t,i;!1!==e(n,"audio")&&n.is_native&&!d&&(s=0===(null===(t=o.videoTracks)||void 0===t?void 0:t.length)&&(null===(i=o.audioTracks)||void 0===i?void 0:i.length)>0,l())}o.on("config",function(n){u=e(n,"data.poster",u);const t=e(n,"data.ui",{});d=!!(8192&t)}),o.on("audioonlysource",function(){!1!==e(n,"audio")&&(o.setOpts({muted:!1}),s=!0,l())}),o.on("src",function(){!1!==e(n,"audio")&&(s=d,l())}),null===(a=o.videoTracks)||void 0===a||a.addEventListener("addtrack",f),null===(r=o.audioTracks)||void 0===r||r.addEventListener("addtrack",f)}}Audio.pluginName="audio";return function(e,n){if("object"==typeof exports&&"undefined"!=typeof module)return n;if(null===document.currentScript)return n;"flowplayer"in e||(e.flowplayer={extensions:[]});const t=e.flowplayer;return"function"==typeof t?(t(n),n):(Array.isArray(t.extensions)||(t.extensions=[]),~t.extensions.indexOf(n)||t.extensions.push(n),n)}(window,Audio)});
|
package/plugins/chapters.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.chapters=t())}(this,function(){"use strict";function e(){}var t;function n(e,n){if(function(e){return Object.values(t).includes(e)}(n=n||t.Anonymous))return e instanceof HTMLVideoElement&&(e.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in e?e.crossOrigin=n:e.setAttribute("crossorigin",n),e}function r(e){const t=document.createElement("a");return t.href=e,t.origin}function i(t,i){const s=document.createElement("track");s.className="fp-track renderable",s.kind=i.kind||"captions",s.label=i.label||i.lang||"",s.lang=i.lang||"",s.id=["fp",i.lang].join("-");const o=s.track;return o.removeCue=e,"string"!=typeof i.crossorigin&&function(e,t){try{return e.src.startsWith("blob:"),r(e.src)!==r(t)}catch(e){return console.error(e),!0}}(t,i.src)&&(n(t),i.crossorigin=t.getAttribute("crossorigin")),"crossorigin"in i&&n(t,i.crossorigin),Object.keys(i).forEach(e=>{"default"!==e&&(s[e]=i[e])}),o.mode=i.default?"hidden":"disabled",t.appendChild(s),s}!function(e){e.Anonymous="anonymous",e.UseCredentials="use-credentials",e.Empty=""}(t||(t={}));const s="mousemove",o="durationchange",a="config",c="chapter:changed",l="chapters:new";var u=Object.freeze({__proto__:null,CHAPTER_CHANGED:c,CHAPTERS_NEW:l});function d(e,t,n){const r=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(r),e}function h(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}function p(...e){const t=document.createElement("div");return 0==e.length||t.classList.add(...e),t}!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 f="flowplayer-timeline-bar",m="is-source-processing",_=(e,t,n,r)=>{e.customElements.get(t)===t&&(((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,n,r),e.customElements.set(t,n))};class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}document.addEventListener("click",function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(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))}),this.active_menu=void 0)});const v={passive:!0};var g;function y(t,n){let r=0,i=-1,o=-1;const a=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),c=t.classList;t.id=a,c.remove(g.GRABBING),c.remove(g.TOUCHING);const l=n.onseek||e,u=n.onstart||e,d=n.onend||e,h=n.onmouse||e,p=n.ontouch||e,f=n.ontouchend||e;function m(e){!function(){const e=t.getBoundingClientRect();r=e.left,i=e.width}();let n=(function(e){return"function"==typeof window.TouchEvent&&e instanceof TouchEvent}(e)?e.changedTouches[0].pageX:e.pageX)-r;return n>i&&(n=i),n<0&&(n=0),n/i*100}function _(e){const n=m(e);n!=o&&(l(t,n),o=n)}return t.addEventListener("touchstart",function(e){E(t,e)&&(c.add(g.TOUCHING),b(t.parentElement)&&(c.add(g.GRABBING),p(t,m(e)),u(t,m(e)),_(e)))},v),t.addEventListener("touchmove",function(e){_(e),h(t,m(e))},v),t.addEventListener("touchend",function(e){setTimeout(function(){c.remove(g.TOUCHING)},500),E(t,e)&&(c.remove(g.GRABBING),f(t,m(e)),d(t,m(e)),i=0)},v),t.addEventListener("touchcancel",function(){c.remove(g.GRABBING,g.TOUCHING),i=0},v),t.addEventListener("mousedown",function(e){c.contains(g.TOUCHING)||(document.addEventListener(s,_),c.add(g.GRABBING),u(t,m(e)),e.preventDefault(),_(e))}),t.addEventListener(s,function(e){c.contains(g.TOUCHING)||h(t,m(e))}),document.addEventListener("mouseup",function(e){c.contains(g.TOUCHING)||(document.removeEventListener(s,_),c.contains(g.GRABBING)&&(c.remove(g.GRABBING),d(t,m(e)),i=0))}),t}function E(e,t){const n=t.target;return!!n&&(n&&!n.closest(e.id)||!b(e.parentElement)||!e.classList.contains(g.TOUCHING))}function b(e){if(!e)return!1;const t=window.getComputedStyle(e);return"0"!==t.width&&"0"!==t.height&&"0"!==t.opacity&&"none"!==t.display&&"hidden"!==t.visibility}function A(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}function w(e){if(isNaN(e)||e>=Number.MAX_SAFE_INTEGER)return"";const t=e<0?"-":"";e=Math.round(Math.abs(e));const n=Math.floor(e/3600);let r=Math.floor(e/60);return e-=60*r,n>=1?(r-=60*n,t+n+":"+A(r)+":"+A(e)):t+A(r)+":"+A(e)}function k(e,t){if(!e.parentElement)return;const n=e.clientWidth/e.parentElement.clientWidth*100/2;e.style.left=t-n+"%",e.style.display="block"}function T(e,t){if(isNaN(e.duration))return;const n=e.buffered;n.length&&(t.style.width=Math.min(n.end(n.length-1)/e.duration*100,100)+"%")}function N(e,t){e.style.width="0",t.style.display="none"}function C(e,t,n){isNaN(e)||isNaN(t.duration)||(k(n,e),n.textContent=w(e/100*t.duration))}!function(e){e.GRABBING="has-grab",e.TOUCHING="has-touch"}(g||(g={}));const B="is-chromecast-playing";function G(e,t){const n=e.seekable;if("object"!=typeof e.opts||0==n.length)return{head:0,tail:0};const r=function(e){var t;const n=e.seekable;return n.length?e.hasState(B)||!(null===(t=e.hls)||void 0===t?void 0:t.liveSyncPosition)?n.end(n.length-1):e.hls.liveSyncPosition:0}(e),i=t||e.live_state.dvr_window;return{head:r,tail:"number"!=typeof i||r-i<0?n.start(0):r-i}}function L(e,t,n){if(!t.seekable||0==t.seekable.length)return;k(n,e);const r=G(t),i=(100-Math.max(0,Math.min(e,100)))/100*(r.head-r.tail);n.innerText="-"+w(i)}function S(e,t){e/=100,t.currentTime=function(e,t){if(t>1||t<0)return console.warn("cannot calculate a percent outside of range(0..1)"),0;const n=G(e);return n.tail+t*(n.head-n.tail)}(t,e)}function x(e,t){e.style.width="0",t.style.display="none"}class FlowplayerTimelineBar extends FlowplayerComponent{constructor(e){let t;super(e),this.bufferEle=p("fp-buffer"),this.progress=p("fp-progress","fp-color"),this.tooltipEle=p("fp-timestamp"),this.proposedSeekBar=p("fp-hover"),this.dragger=p("fp-dragger","fp-color"),this.classList.add("fp-timeline","fp-bar"),this.tooltipEle.style.display="none",this.setAttribute("role","slider"),this.setAttribute("tabindex","0"),this.setAttribute("aria-label",e.i18n("core.timeline_aria_label","Seek slider")),this.setAttribute("aria-valuenow","0"),this.progress.append(this.dragger),this.append(this.bufferEle,this.progress,this.proposedSeekBar,this.tooltipEle);const n=requestAnimationFrame;let r;const i=()=>{var n;0==e.reaper||t.live||(n=e,this.progress.style.width=n.currentTime/n.duration*100+"%",r=void 0,e.paused||this.classList.contains(g.GRABBING)||r||(r=setTimeout(i,200)))},s=()=>!!this.player.opt("seekable",!0)&&!isNaN(this.player.duration);y(this,{onseek:(n,r)=>{if(s())switch(!!t.live){case!0:L(r,e,this.tooltipEle);break;case!1:!function(e,t,n){const r=t.duration*(e/100);if(t.disabled&&r>t.currentTime)return!1;n.style.width=e+"%",t.currentTime=r}(r,e,this.progress),C(r,e,this.tooltipEle)}},onstart:()=>{s()&&(e.emit("timeline/gesture/start"),!e.hasState("is-casting")&&e.setState("is-seeking",!0),t.live||function(e){e.style.display="block"}(this.tooltipEle))},onend:function(r,s){n(i),0!=t.seekable&&t.live&&S(s,e)},ontouchend:()=>{t.live?x(this.proposedSeekBar,this.tooltipEle):N(this.proposedSeekBar,this.tooltipEle),setTimeout(()=>e.emit("timeline/gesture/end"),0)},onmouse:(n,r)=>{if(s()&&(e.emit("timeline/gesture/move",{percent:r}),!this.classList.contains(g.GRABBING)))switch(!!t.live){case!0:!function(e,t){t.style.width=e+"%"}(r,this.proposedSeekBar),L(r,e,this.tooltipEle);break;case!1:!function(e,t){t.style.width=e+"%"}(r,this.proposedSeekBar),C(r,e,this.tooltipEle)}}}),e.on(a,function(e){e.data&&(t=e.data)}),e.on("playing",()=>n(i)),e.on("progress",()=>{0==e.reaper||t.live||T(e,this.bufferEle)}),e.on("dvr",e=>{this.progress.style.width=e.detail+"%"}),e.on("timeupdate",()=>{0!=e.reaper&&(n(i),this.setAttribute("aria-valuenow",e.currentTime+""),this.setAttribute("aria-valuetext",Math.round(e.currentTime)+" "+e.i18n("core.seconds","Seconds")),t.live||T(e,this.bufferEle))}),e.on("loadedmetadata",()=>{0!=e.reaper&&(t.live||T(e,this.bufferEle))}),e.on(o,t=>{if(0==e.reaper)return;const n=function(e){return e.opt("live",!1)||e.duration>=Number.MAX_SAFE_INTEGER}(e),r=n?function(e){return isFinite(e.duration)?e.duration:0==e.seekable.length?0:G(e).head}(e):t.data||e.duration;isNaN(r)||(this.setAttribute("aria-valuemax",r+""),this.setAttribute("aria-valuemin","0"))}),this.addEventListener("mouseleave",()=>{e.emit("timeline/gesture/end"),t.live?x(this.proposedSeekBar,this.tooltipEle):N(this.proposedSeekBar,this.tooltipEle)})}}class FlowplayerChaptersTimelineBar extends FlowplayerTimelineBar{constructor(e){super(e),this.handleChapters(e)}handleChapters(e){const t=document.createElement("div");let n;this.addEventListener(l,e=>{t.innerText="",this.querySelectorAll(".fp-chapter").forEach(e=>this.removeChild(e)),e.data&&e.data.forEach(e=>{const r=document.createElement("div");r.className="fp-chapter",r.style.left=e.left,r.style.bottom=r.style.top="0",r.style.width=e.width,r.title=e.title,r.onmouseover=()=>{t.innerText=e.title},r.onmouseleave=()=>{t.innerText=n||""},this.appendChild(r)})}),this.addEventListener(c,r=>{var i;const s=r.data;s&&(t.parentNode||(null===(i=h(e,"flowplayer-control"))||void 0===i||i.insertAdjacentElement("beforebegin",t),t.classList.toggle("fp-togglable",!0),t.classList.toggle("fp-chapter-info",!0)),n=s,t.innerText=s)})}}var I;const O=((I=class Chapters{constructor(t){this._track_added_handler=e,this._cue_changed_handler=e,this.chapters=[],this.render=this.render.bind(this),_(t,f,"flowplayer-chapters-timeline-bar",FlowplayerChaptersTimelineBar)}init(e,t,n){this._root=t,this._player=n,this._timeline=h(n,f),this._track_added_handler=this.track_added.bind(this,n),this._cue_changed_handler=this.cue_changed.bind(this,n),n.textTracks.addEventListener("addtrack",this._track_added_handler),this.wireup(n,e),n.chapters=this,n.on(a,e=>{e.data&&this.wireup(n,e.data)}),n.on(["playlist/advance","src"],e=>{n.currentSrc&&("src"===e.type&&["is-playlist",m].some(e=>n.root.classList.contains(e))||(this._current_chapters_src=void 0,delete n.opts.chapters,this.wiredown(n)))}),n.on("reap",()=>{this.wiredown(n),n.textTracks.removeEventListener("addtrack",this._track_added_handler),n.off(o,this.render)}),n.on(o,this.render)}track_added(e,t){}cue_changed(e,t){var n;this._current_chapters_track&&(this.current_cue=this._current_chapters_track.track.activeCues?this._current_chapters_track.track.activeCues[0]:void 0,this._timeline&&d(this._timeline,c,null===(n=this.current_cue)||void 0===n?void 0:n.text))}set_chapters(e){this.chapters=e,this.render()}jump(e){this._player&&this.chapters[e]&&(this._player.currentTime=this.chapters[e].start)}current(){if(this.current_cue)return this.chapters.find(e=>e.cue==this.current_cue)}render(){if(!this._root||!this._player||!this._timeline)return;const e=this._player.duration;isFinite(e)&&(d(this._timeline,l,this.chapters.map(t=>({title:t.label,left:t.start/e*100+"%",width:(t.end-t.start)/e*100+"%"}))),this._root.classList.toggle("has-chapters",!!this.chapters.length))}wireup(e,t){const n=Array.isArray(t.chapters)?t.chapters[0]:t.chapters;n&&n.src!==this._current_chapters_src&&(this._current_chapters_track=i(e,Object.assign(Object.assign({},n),{kind:"chapters",default:!0})),this._current_chapters_track.onload=()=>{var e;(null===(e=this._current_chapters_track)||void 0===e?void 0:e.track.cues)&&this.set_chapters(Array.from(this._current_chapters_track.track.cues).filter(e=>e instanceof VTTCue).map(e=>{const t=e;return{start:e.startTime,end:e.endTime,cue:t,label:t.text}}))},this._current_chapters_src=n.src,this._current_chapters_track.addEventListener("cuechange",this._cue_changed_handler))}wiredown(e){this.set_chapters([]),this._current_chapters_track&&(this._current_chapters_track.removeEventListener("cuechange",this._cue_changed_handler),e.removeChild(this._current_chapters_track),this._current_chapters_track=void 0)}}).events=u,I.pluginName="chapters",I);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,O)});
|
|
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.chapters=t())}(this,function(){"use strict";function e(){}var t;function n(e,n){if(function(e){return Object.values(t).includes(e)}(n=n||t.Anonymous))return e instanceof HTMLVideoElement&&(e.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in e?e.crossOrigin=n:e.setAttribute("crossorigin",n),e}function r(e){const t=document.createElement("a");return t.href=e,t.origin}function i(t,i){const s=document.createElement("track");s.className="fp-track renderable",s.kind=i.kind||"captions",s.label=i.label||i.lang||"",s.lang=i.lang||"",s.id=["fp",i.lang].join("-");const a=s.track;return a.removeCue=e,"string"!=typeof i.crossorigin&&function(e,t){try{return e.src.startsWith("blob:"),r(e.src)!==r(t)}catch(e){return console.error(e),!0}}(t,i.src)&&(n(t),i.crossorigin=t.getAttribute("crossorigin")),"crossorigin"in i&&n(t,i.crossorigin),Object.keys(i).forEach(e=>{"default"!==e&&(s[e]=i[e])}),a.mode=i.default?"hidden":"disabled",t.appendChild(s),s}!function(e){e.Anonymous="anonymous",e.UseCredentials="use-credentials",e.Empty=""}(t||(t={}));const s="mousemove",a="durationchange",o="config",c="chapter:changed",l="chapters:new";var u=Object.freeze({__proto__:null,CHAPTER_CHANGED:c,CHAPTERS_NEW:l});function d(e,t,n){const r=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(r),e}function h(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}function p(...e){const t=document.createElement("div");return 0==e.length||t.classList.add(...e),t}!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 f="flowplayer-timeline-bar",m="is-source-processing",_=(e,t,n,r)=>{e.customElements.get(t)===t&&(((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,n,r),e.customElements.set(t,n))};class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}document.addEventListener("click",function(e){this.active_menu&&!e.composedPath().includes(this.active_menu)&&(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))}),this.active_menu=void 0)});const v={passive:!0};var g;function y(t,n){let r=0,i=-1,a=-1;const o=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),c=t.classList;t.id=o,c.remove(g.GRABBING),c.remove(g.TOUCHING);const l=n.onseek||e,u=n.onstart||e,d=n.onend||e,h=n.onmouse||e,p=n.ontouch||e,f=n.ontouchend||e;function m(e){!function(){const e=t.getBoundingClientRect();r=e.left,i=e.width}();let n=(function(e){return"function"==typeof window.TouchEvent&&e instanceof TouchEvent}(e)?e.changedTouches[0].pageX:e.pageX)-r;return n>i&&(n=i),n<0&&(n=0),n/i*100}function _(e){const n=m(e);n!=a&&(l(t,n),a=n)}return t.addEventListener("touchstart",function(e){E(t,e)&&(c.add(g.TOUCHING),b(t.parentElement)&&(c.add(g.GRABBING),p(t,m(e)),u(t,m(e)),_(e)))},v),t.addEventListener("touchmove",function(e){_(e),h(t,m(e))},v),t.addEventListener("touchend",function(e){setTimeout(function(){c.remove(g.TOUCHING)},500),E(t,e)&&(c.remove(g.GRABBING),f(t,m(e)),d(t,m(e)),i=0)},v),t.addEventListener("touchcancel",function(){c.remove(g.GRABBING,g.TOUCHING),i=0},v),t.addEventListener("mousedown",function(e){c.contains(g.TOUCHING)||(document.addEventListener(s,_),c.add(g.GRABBING),u(t,m(e)),e.preventDefault(),_(e))}),t.addEventListener(s,function(e){c.contains(g.TOUCHING)||h(t,m(e))}),document.addEventListener("mouseup",function(e){c.contains(g.TOUCHING)||(document.removeEventListener(s,_),c.contains(g.GRABBING)&&(c.remove(g.GRABBING),d(t,m(e)),i=0))}),t}function E(e,t){const n=t.target;return!!n&&(n&&!n.closest(e.id)||!b(e.parentElement)||!e.classList.contains(g.TOUCHING))}function b(e){if(!e)return!1;const t=window.getComputedStyle(e);return"0"!==t.width&&"0"!==t.height&&"0"!==t.opacity&&"none"!==t.display&&"hidden"!==t.visibility}function A(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}function w(e){if(isNaN(e)||e>=Number.MAX_SAFE_INTEGER)return"";const t=e<0?"-":"";e=Math.round(Math.abs(e));const n=Math.floor(e/3600);let r=Math.floor(e/60);return e-=60*r,n>=1?(r-=60*n,t+n+":"+A(r)+":"+A(e)):t+A(r)+":"+A(e)}function k(e,t){if(!e.parentElement)return;const n=e.clientWidth/e.parentElement.clientWidth*100/2;e.style.left=t-n+"%",e.style.display="block"}function T(e,t){if(isNaN(e.duration))return;const n=e.buffered;n.length&&(t.style.width=Math.min(n.end(n.length-1)/e.duration*100,100)+"%")}function N(e,t){e.style.width="0",t.style.display="none"}function C(e,t,n){isNaN(e)||isNaN(t.duration)||(k(n,e),n.textContent=w(e/100*t.duration))}!function(e){e.GRABBING="has-grab",e.TOUCHING="has-touch"}(g||(g={}));const B="is-chromecast-playing";function G(e,t){const n=e.seekable;if("object"!=typeof e.opts||0==n.length)return{head:0,tail:0};const r=function(e){var t;const n=e.seekable;return n.length?e.hasState(B)||!(null===(t=e.hls)||void 0===t?void 0:t.liveSyncPosition)?n.end(n.length-1):e.hls.liveSyncPosition:0}(e),i=t||e.live_state.dvr_window;return{head:r,tail:"number"!=typeof i||r-i<0?n.start(0):r-i}}function L(e,t,n){if(!t.seekable||0==t.seekable.length)return;k(n,e);const r=G(t),i=(100-Math.max(0,Math.min(e,100)))/100*(r.head-r.tail);n.innerText="-"+w(i)}function S(e,t){e/=100,t.currentTime=function(e,t){if(t>1||t<0)return console.warn("cannot calculate a percent outside of range(0..1)"),0;const n=G(e);return n.tail+t*(n.head-n.tail)}(t,e)}function x(e,t){e.style.width="0",t.style.display="none"}class FlowplayerTimelineBar extends FlowplayerComponent{constructor(e){let t;super(e),this.bufferEle=p("fp-buffer"),this.progress=p("fp-progress","fp-color"),this.tooltipEle=p("fp-timestamp"),this.proposedSeekBar=p("fp-hover"),this.dragger=p("fp-dragger","fp-color"),this.classList.add("fp-timeline","fp-bar"),this.tooltipEle.style.display="none",this.setAttribute("role","slider"),this.setAttribute("tabindex","0"),this.setAttribute("aria-label",e.i18n("core.timeline_aria_label","Seek slider")),this.setAttribute("aria-valuenow","0"),this.progress.append(this.dragger),this.append(this.bufferEle,this.progress,this.proposedSeekBar,this.tooltipEle);const n=requestAnimationFrame;let r;const i=()=>{var n;0==e.reaper||t.live||(n=e,this.progress.style.width=n.currentTime/n.duration*100+"%",r=void 0,e.paused||this.classList.contains(g.GRABBING)||r||(r=setTimeout(i,200)))},s=()=>!!this.player.opt("seekable",!0)&&!isNaN(this.player.duration);y(this,{onseek:(n,r)=>{if(s())switch(!!t.live){case!0:L(r,e,this.tooltipEle);break;case!1:!function(e,t,n){const r=t.duration*(e/100);if(t.disabled&&r>t.currentTime)return!1;n.style.width=e+"%",t.currentTime=r}(r,e,this.progress),C(r,e,this.tooltipEle)}},onstart:()=>{s()&&(e.emit("timeline/gesture/start"),!e.hasState("is-casting")&&e.setState("is-seeking",!0),t.live||function(e){e.style.display="block"}(this.tooltipEle))},onend:function(r,s){n(i),0!=t.seekable&&t.live&&S(s,e)},ontouchend:()=>{t.live?x(this.proposedSeekBar,this.tooltipEle):N(this.proposedSeekBar,this.tooltipEle),setTimeout(()=>e.emit("timeline/gesture/end"),0)},onmouse:(n,r)=>{if(s()&&(e.emit("timeline/gesture/move",{percent:r}),!this.classList.contains(g.GRABBING)))switch(!!t.live){case!0:!function(e,t){t.style.width=e+"%"}(r,this.proposedSeekBar),L(r,e,this.tooltipEle);break;case!1:!function(e,t){t.style.width=e+"%"}(r,this.proposedSeekBar),C(r,e,this.tooltipEle)}}}),e.on(o,function(e){e.data&&(t=e.data)}),e.on("playing",()=>n(i)),e.on("progress",()=>{0==e.reaper||t.live||T(e,this.bufferEle)}),e.on("dvr",e=>{this.progress.style.width=e.detail+"%"}),e.on("timeupdate",()=>{0!=e.reaper&&(n(i),this.setAttribute("aria-valuenow",e.currentTime+""),this.setAttribute("aria-valuetext",Math.round(e.currentTime)+" "+e.i18n("core.seconds","Seconds")),t.live||T(e,this.bufferEle))}),e.on("loadedmetadata",()=>{0!=e.reaper&&(t.live||T(e,this.bufferEle))}),e.on(a,t=>{if(0==e.reaper)return;const n=function(e){return e.opt("live",!1)||e.duration>=Number.MAX_SAFE_INTEGER}(e),r=n?function(e){return isFinite(e.duration)?e.duration:0==e.seekable.length?0:G(e).head}(e):t.data||e.duration;isNaN(r)||(this.setAttribute("aria-valuemax",r+""),this.setAttribute("aria-valuemin","0"))}),this.addEventListener("mouseleave",()=>{e.emit("timeline/gesture/end"),t.live?x(this.proposedSeekBar,this.tooltipEle):N(this.proposedSeekBar,this.tooltipEle)})}}class FlowplayerChaptersTimelineBar extends FlowplayerTimelineBar{constructor(e){super(e),this.handleChapters(e)}handleChapters(e){const t=document.createElement("div");let n;this.addEventListener(l,e=>{t.innerText="",this.querySelectorAll(".fp-chapter").forEach(e=>this.removeChild(e)),e.data&&e.data.forEach(e=>{const r=document.createElement("div");r.className="fp-chapter",r.style.left=e.left,r.style.bottom=r.style.top="0",r.style.width=e.width,r.title=e.title,r.onmouseover=()=>{t.innerText=e.title},r.onmouseleave=()=>{t.innerText=n||""},this.appendChild(r)})}),this.addEventListener(c,r=>{var i;const s=r.data;s&&(t.parentNode||(null===(i=h(e,"flowplayer-control"))||void 0===i||i.insertAdjacentElement("beforebegin",t),t.classList.toggle("fp-togglable",!0),t.classList.toggle("fp-chapter-info",!0)),n=s,t.innerText=s)})}}const I=1,O=.001;const R=new WeakMap;function H(e,t,n="used"){var r;const i=`${t}:${n}`,s=null!==(r=R.get(e))&&void 0!==r?r:new Set;if(s.has(i))return;s.add(i),R.set(e,s);const a=()=>function(e,{feature_name:t,behavior:n,sample_rate:r}){t&&(r||(r=I),e.emit("flowplayer:feature",{feature_name:t,behavior:n,sample_rate:r}))}(e,{feature_name:t,behavior:n,sample_rate:O});e.opt("metadata.media_id")?a():e.once("health:ready",a)}var j;const M=((j=class Chapters{constructor(t){this._track_added_handler=e,this._cue_changed_handler=e,this.chapters=[],this.render=this.render.bind(this),_(t,f,"flowplayer-chapters-timeline-bar",FlowplayerChaptersTimelineBar)}init(e,t,n){this._root=t,this._player=n,this._timeline=h(n,f),this._track_added_handler=this.track_added.bind(this,n),this._cue_changed_handler=this.cue_changed.bind(this,n),n.textTracks.addEventListener("addtrack",this._track_added_handler),this.wireup(n,e),n.chapters=this,n.on(o,e=>{e.data&&this.wireup(n,e.data)}),n.on(["playlist/advance","src"],e=>{n.currentSrc&&("src"===e.type&&["is-playlist",m].some(e=>n.root.classList.contains(e))||(this._current_chapters_src=void 0,delete n.opts.chapters,this.wiredown(n)))}),n.on("reap",()=>{this.wiredown(n),n.textTracks.removeEventListener("addtrack",this._track_added_handler),n.off(a,this.render)}),n.on(a,this.render)}track_added(e,t){}cue_changed(e,t){var n;this._current_chapters_track&&(this.current_cue=this._current_chapters_track.track.activeCues?this._current_chapters_track.track.activeCues[0]:void 0,this._timeline&&d(this._timeline,c,null===(n=this.current_cue)||void 0===n?void 0:n.text))}set_chapters(e){this.chapters=e,this.render()}jump(e){this._player&&this.chapters[e]&&(this._player.currentTime=this.chapters[e].start)}current(){if(this.current_cue)return this.chapters.find(e=>e.cue==this.current_cue)}render(){if(!this._root||!this._player||!this._timeline)return;const e=this._player.duration;isFinite(e)&&(d(this._timeline,l,this.chapters.map(t=>({title:t.label,left:t.start/e*100+"%",width:(t.end-t.start)/e*100+"%"}))),this._root.classList.toggle("has-chapters",!!this.chapters.length),this.chapters.length&&H(this._player,"chapters"))}wireup(e,t){const n=Array.isArray(t.chapters)?t.chapters[0]:t.chapters;n&&n.src!==this._current_chapters_src&&(this._current_chapters_track=i(e,Object.assign(Object.assign({},n),{kind:"chapters",default:!0})),this._current_chapters_track.onload=()=>{var e;(null===(e=this._current_chapters_track)||void 0===e?void 0:e.track.cues)&&this.set_chapters(Array.from(this._current_chapters_track.track.cues).filter(e=>e instanceof VTTCue).map(e=>{const t=e;return{start:e.startTime,end:e.endTime,cue:t,label:t.text}}))},this._current_chapters_src=n.src,this._current_chapters_track.addEventListener("cuechange",this._cue_changed_handler))}wiredown(e){this.set_chapters([]),this._current_chapters_track&&(this._current_chapters_track.removeEventListener("cuechange",this._cue_changed_handler),e.removeChild(this._current_chapters_track),this._current_chapters_track=void 0)}}).events=u,j.pluginName="chapters",j);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const n=e.flowplayer;return"function"==typeof n?(n(t),t):(Array.isArray(n.extensions)||(n.extensions=[]),~n.extensions.indexOf(t)||n.extensions.push(t),t)}(window,M)});
|
package/plugins/chromecast.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.chromecast=t())}(this,function(){"use strict";function e(e){const t=document.createElement("a");t.href=e;const n=t.pathname&&t.pathname.split(".");return n.length>1&&n[n.length-1]}function t(e){switch(e){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return e}}const n=n=>{var{src:o}=n,r=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}(n,["src"]);return[Object.assign({src:o,type:o?t("video/"+e(o)):""},r)]};function o(e){return n({src:e})}class Pipe{static of(e){return new Pipe(e)}static maybe(e,t,...n){return null==e?e:t.apply(e,[e,...n])}constructor(e){this.data=e}tap(e,...t){return e.apply(this,[this.data,...t]),new Pipe(this.data)}fmap(e,...t){const n=e.apply(this,[this.data,...t]);return new Pipe(n)}unwrap(){return this.data}}const r="chromecast:available",a="chromecast:unavailable",i="chromecast:start",s="chromecast:idle",c="chromecast:state:changed",l="chromecast:session:changed",u="chromecast:field:update",d="chromecast:media";var m=Object.freeze({__proto__:null,CAST_AVAILABLE:r,CAST_UNAVAILABLE:a,CAST_START_CASTING:i,CAST_IDLE:s,CAST_STATE_CHANGED:c,CAST_SESSION_CHANGED:l,CAST_FIELD_UPDATE:u,CAST_MEDIA_LOAD_REQUEST:d});const p={AAC:"aac",AC3:"ac3",E_AC3:"e_ac3",FMP4:"fmp4",MP3:"mp3",TS:"ts",TS_AAC:"ts_aac"},f={FMP4:"fmp4",MPEG2_TS:"mpeg2_ts"},v=/(video\/mp4)|(application\/x-mpegurl)|(video\/mpd)|(application\/dash\+xml)/;function h(){var e;return(null===(e=b())||void 0===e?void 0:e.getCurrentSession())||null}function S(e){return T(e).unwrap().shift()}function y(e,t){const n=e.opts.chromecast;(null==n?void 0:n.hlsSegmentFormat)&&Object.values(p).includes(n.hlsSegmentFormat.toLowerCase())&&(t.hlsSegmentFormat=n.hlsSegmentFormat),(null==n?void 0:n.hlsVideoSegmentFormat)&&Object.values(f).includes(n.hlsVideoSegmentFormat.toLowerCase())&&(t.hlsVideoSegmentFormat=n.hlsVideoSegmentFormat)}function g(){var e;return(null===(e=h())||void 0===e?void 0:e.getMediaSession())||null}function _(e){var t,n;const o=T(e).unwrap().map(function(e){return null==e?void 0:e.src}),r=null===(n=null===(t=g())||void 0===t?void 0:t.media)||void 0===n?void 0:n.contentId;return!!r&&!!~o.indexOf(r)}function w(e){var t;return(null===(t=e.type)||void 0===t?void 0:t.match(v))||!1}function E(e,t){if(!t.opts.src)return e;const n=(Array.isArray(t.opts.src)?t.opts.src:[t.opts.src]).map(e=>"string"==typeof e?o(e)[0]:e);return e.map(e=>{const t=n.find(t=>t.src===e.src);return t&&t.drm?Object.assign(Object.assign({},e),{drm:t.drm}):e})}function T(e){return Pipe.of(e).fmap(()=>e.original_src||[]).fmap(function(e){return"string"==typeof e?o(e):e}).fmap(E,e).fmap(function(e){return e.filter(w)})}function b(){var e,t,n;return null===(n=null===(t=null===(e=window.cast)||void 0===e?void 0:e.framework)||void 0===t?void 0:t.CastContext)||void 0===n?void 0:n.getInstance()}function A(e,t){var n;null===(n=O.casting_player)||void 0===n||n.emit(e,t)}function C(e,t,n){e.forEach(function(e){e!==O.casting_player&&e.emit(t,n)})}function k(e,t,n){e.forEach(function(e){e.emit(t,n)})}const O={remote_player:void 0,controller:void 0,listener:void 0};function L(e){O.controller&&O.listener&&O.controller.removeEventListener(cast.framework.RemotePlayerEventType.ANY_CHANGE,O.listener),O.remote_player=new cast.framework.RemotePlayer,O.controller=new cast.framework.RemotePlayerController(O.remote_player),O.listener=P.bind(null,e),O.controller.addEventListener(cast.framework.RemotePlayerEventType.ANY_CHANGE,O.listener)}function P(e,t){var n;if((null===(n=b())||void 0===n?void 0:n.getCastState())!==cast.framework.CastState.NOT_CONNECTED)return"IDLE"===t.value?C(e,s):void A(u,t)}function I(e){return Array.from(e.textTracks).filter(e=>["subtitles","captions"].includes(e.kind))}function x(e){return I(e).flatMap((t,n)=>{try{const o=e.querySelector("#"+t.id);if(!(o instanceof HTMLTrackElement&&o.lang))return[];const r=new chrome.cast.media.Track(n+1e3,chrome.cast.media.TrackType.TEXT);return r.trackContentType="text/vtt",r.subtype=chrome.cast.media.TextTrackType.SUBTITLES,r.trackContentId=o.src,r.name=o.label,r.language=o.lang,r}catch(e){return[]}})}function N(e){var t;const n=new chrome.cast.media.EditTracksInfoRequest(e);null===(t=g())||void 0===t||t.editTracksInfo(n,console.debug,console.error)}var M=Object.freeze({__proto__:null,getCurrentSession:h,getMedia:S,setMediaSegmentFormat:y,getMediaSession:g,isSame:_,is_supported_media:w,injectDRMConfiguration:E,normalizeSrc:T,getCastContext:b,broadcast_to_active:A,broadcast_to_idle:C,broadcast:k,SINGLETONS:O,refresh_singletons:L,onremotechange:P,tracks:I,cast_tracks:x,editTracks:N});const D="940D4BE4";var j=Object.freeze({__proto__:null,STABLE:D,CANARY:"6F71FA7C",LOCAL:"5258CA32"});const F="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1";function R(e,t,n){if(document.querySelector("script[src='"+F+"']"))return q(n);!function(){const e=document.createElement("script");e.async=!0,e.src=F,document.head.appendChild(e)}(),window.__onGCastApiAvailable=function(){!function(e,t,n){var o;if(!G())return;const r=(null===(o=e.chromecast)||void 0===o?void 0:o.app)||D,a=b();if(!a)return;a.setOptions({receiverApplicationId:r,autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(e){k(n,c,e)}),a.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(e){L(n),k(n,l,e)})}(e,0,n),q(n)}}function G(){return"object"==typeof window.cast&&"object"==typeof chrome.cast}function q(e){if(G())return k(e,r);k(e,a)}const H="timeupdate",V="remotesession:ended",U="is-cast-available",B="is-casting",z="has-casted",Y="is-chromecast-playing";function J(e,t){const n=e.seekable;if("object"!=typeof e.opts||0==n.length)return{head:0,tail:0};const o=function(e){var t;const n=e.seekable;return n.length?e.hasState(Y)||!(null===(t=e.hls)||void 0===t?void 0:t.liveSyncPosition)?n.end(n.length-1):e.hls.liveSyncPosition:0}(e),r=t||e.live_state.dvr_window;return{head:o,tail:"number"!=typeof r||o-r<0?n.start(0):o-r}}function X(e){const t=e.currentTime,n=J(e);return{progress:Math.min(100,Math.max(0,(t-n.tail)/(n.head-n.tail)*100)),is_live:t-n.head>=-10}}const $={player:void 0,listener:void 0};function Q(e,t,n,o){var r,a,i,c,l;const u=h();if(!u)return;const m=S(e);if(!m||!m.src)return;O.casting_player=e;const p=new chrome.cast.media.MediaInfo(m.src,m.type||"");p.metadata=new chrome.cast.media.GenericMediaMetadata,function(e){$.player&&$.listener&&$.player.off("playing",$.listener);const t={currentTime:e.currentSessionTime,liveState:e.live_state,progress:X(e).progress};$.player=e,$.listener=()=>{setTimeout(()=>{!function(e,t){const n=g();if(!n)return;if(-1!==n.media.duration)return e.currentTime=t.currentTime;const o=n.liveSeekableRange;if(!o||"number"!=typeof o.end||"number"!=typeof o.start)return;if(void 0===t.liveState.dvr_window||!t.liveState.dvr)return;e.currentTime=(o.end-o.start)*(t.progress/100)}(e,t)},1e3)},e.once("playing",$.listener)}(e);const f={health:e.health,text_tracks:x(e),active_tracks:{active_audio:(null===(a=null===(r=null==e?void 0:e.asel)||void 0===r?void 0:r.active_track)||void 0===a?void 0:a.name)||(null===(c=null===(i=null==e?void 0:e.asel)||void 0===i?void 0:i.active_track)||void 0===c?void 0:c.lang),active_text:null===(l=I(e).find(e=>e.is_active))||void 0===l?void 0:l.label}};m.drm&&(f.drm=m.drm),localStorage.__fpChromecastDebug&&(f.debug=!0),e.opt("ads")&&(f.ads=e.opt("ads")),p.customData=f,y(e,p);const v=new chrome.cast.media.LoadRequest(p);v.customData=e.opt("chromecast",{}),v.customData.metadata=e.opt("metadata"),e.emit(d,{request:v}),console.debug("cast:request(%o)",v),u.loadMedia(v).then(()=>{e.emit("remotesession:started"),e.setState(z,!0),e.setState(B,!0),L(t);const n=O.remote_player;n&&(e.volume=n.volumeLevel,e.muted=n.isMuted),C(t,s)},o)}function K(){return!!g()}function W(){return!!h()}function Z(){var e;return null===(e=h())||void 0===e?void 0:e.getCastDevice().friendlyName}function ee(){var e;return(null===(e=null==M?void 0:h())||void 0===e?void 0:e.getMediaSession()).getEstimatedLiveSeekableRange()}function te(){var e,t;return null===(t=null===(e=g())||void 0===e?void 0:e.media)||void 0===t?void 0:t.duration}function ne(){var e;return null===(e=g())||void 0===e?void 0:e.playerState}function oe(e){var t;return e?re(e):null===(t=g())||void 0===t?void 0:t.getEstimatedTime()}function re(e){const t=g();if(!t)return e;const n=new chrome.cast.media.SeekRequest;return n.currentTime=e,t.seek(n,console.debug,console.error),e}function ae(){var e;return null===(e=g())||void 0===e?void 0:e.play(new chrome.cast.media.PlayRequest,console.debug,console.error)}function ie(){var e;return null===(e=g())||void 0===e?void 0:e.pause(new chrome.cast.media.PauseRequest,console.debug,console.error)}var se=Object.freeze({__proto__:null,load:Q,has_media:K,exists:W,device_name:Z,seekable_ranges:ee,duration:te,state:ne,currentTime:oe,seek:re,play:ae,pause:ie});function ce(e,t){if(!e.root)return;const n=e.root.querySelector(".fp-chromecast p");if(!n)return;let o="";o=e.i18n("chromecast.message","{{state}} on {{device}}").replace("{{device}}",(null==t?void 0:t.device)||"chromecast"),o=o.replace("{{state}}",((null==t?void 0:t.state)||"").toLowerCase()),n.textContent=o}const le="is-playing",ue="is-paused",de="is-starting";const me="currentTime",pe="duration",fe="playerState",ve="videoInfo",he="volumeLevel",Se="isMuted",ye="liveSeekableRange",ge=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const o=window.customElements.get(t);if(!o)throw new Error(`no default flowplayer component with the name ${t} exists`);const r=window.customElements.get(n);return"function"!=typeof r?o:r})(e._customElements,t))(e);class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class FlowplayerChromecastIcon extends FlowplayerComponent{constructor(e){super(e),this.classList.add("fp-cast-button"),this.setAttribute("tabindex","-1"),this.setAttribute("role","button"),this.setAttribute("aria-hidden","true"),this.cast_launcher=document.createElement("google-cast-launcher"),this.cast_launcher.setAttribute("inert","true"),this.append(this.cast_launcher),this.addEventListener("click",t=>{const n=h();if(n)return n.endSession(!0);e.emit(i),t.target===this&&this.cast_launcher.click()}),e.on(c,t=>{const n=t.detail.castState;n&&(this.setAttribute("tabindex",n===cast.framework.CastState.NO_DEVICES_AVAILABLE?"-1":"0"),this.setAttribute("aria-hidden",(n===cast.framework.CastState.NO_DEVICES_AVAILABLE)+""),this.setAttribute("aria-label",n===cast.framework.CastState.NOT_CONNECTED?e.i18n("chromecast.start","start casting"):e.i18n("chromecast.stop","stop casting")))})}}function _e(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}const we="flowplayer-chromecast-icon";class ChromecastPlugin{constructor(e){var t,n,o;this.flowplayer=e,t=e,n=we,o=FlowplayerChromecastIcon,window.customElements.get(n)||window.customElements.define(n,o),t.customElements.get(n)||t.customElements.set(n,n)}init(e,t,n){if("https:"!==location.protocol&&"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname)return console.warn("Secure URL required to enable Chromecast");R(e,0,this.flowplayer.instances),n.on("mount",function(){const t=_e(n,"flowplayer-middle");t&&function(e,t){const n=document.createElement("div");n.className="fp-chromecast";const o=document.createElement("p");t.poster&&(n.style.backgroundImage=["url(",t.poster,")"].join("")),n.append(o),e.prepend(n)}(t,{poster:e.poster});const o=_e(n,"flowplayer-header-right-zone");o&&o.prepend(ge(n,we))}),n.on(r,()=>{n.setState(U,!0),function(e,t){const n={play:function(){return new Promise(n=>_(e)?n(ae()):K()?n(Q(e,t,console.debug,console.error)):(Q(e,t,console.debug,console.error),void n()))},pause:function(){return _(e)?ie():HTMLMediaElement.prototype.pause.call(e)}};n.currentTime={get:oe,set:oe},n.seekable={get:()=>{const e=ee();return{start:()=>(null==e?void 0:e.start)||0,end:()=>(null==e?void 0:e.end)||0,length:1}}},n.duration={get:te},n.paused={get:function(){return"PAUSED"===ne()}},n.playing={get:function(){return"PLAYING"===ne()}},Object.keys(n).forEach(function(t){if("object"==typeof n[t])return Object.defineProperty(e,t,{get:function(){var o,r;return _(e)?n[t].get():null===(r=null===(o=Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,t))||void 0===o?void 0:o.get)||void 0===r?void 0:r.call(this)},set:function(o){var r,a;return _(e)?n[t].set(o):null===(a=null===(r=Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,t))||void 0===r?void 0:r.set)||void 0===a?void 0:a.call(this,o)}});const o=e[t];e[t]=function(){const r=[].slice.apply(arguments);return W()?n[t].apply(e,r):o.apply(e,r)}})}(n,this.flowplayer.instances)}),n.on(a,function(){n.setState(U,!1)}),n.on(i,()=>{if(O.casting_player=n,this.flowplayer.instances.forEach(e=>{e.togglePlay(!1),e.currentSessionTime=e.hasState("is-ended")?0:e.currentTime}),K())return Q(n,this.flowplayer.instances,console.debug,console.error)}),n.on("volumechange",()=>{const e=O.remote_player,t=O.controller;if(!K()||!e||!t)return;const o=n.volume,r=n.muted;o!==e.volumeLevel&&(e.volumeLevel=o,t.setVolumeLevel()),r!==e.isMuted&&t.muteOrUnmute()}),n.on("tracks:text:updated",function(e){var t,o,r;if(K())return e.data?void N((null===(r=null===(o=null===(t=g())||void 0===t?void 0:t.media)||void 0===o?void 0:o.tracks)||void 0===r?void 0:r.filter(e=>"TEXT"===e.type).filter(e=>{var t;return e.name===(null===(t=I(n).find(e=>e.is_active))||void 0===t?void 0:t.label)}).map(e=>e.trackId))||[]):N([])}),n.on("audio:update",()=>{K()&&setTimeout(()=>{var e,t,o,r,a;const i=null===(e=null==n?void 0:n.asel)||void 0===e?void 0:e.active_track,s=null===(a=null===(r=null===(o=null===(t=g())||void 0===t?void 0:t.media)||void 0===o?void 0:o.tracks)||void 0===r?void 0:r.filter(e=>"AUDIO"===e.type).find(e=>void 0!==e.name?e.name===(null==i?void 0:i.name):e.language===(null==i?void 0:i.lang)))||void 0===a?void 0:a.trackId;"number"==typeof s&&N([s])},0)}),n.on(s,()=>{if(n.setState(de,!0),!n.hasState(B))return;const e=n.opt("duration");"number"==typeof e&&Math.abs(e-n.currentSessionTime)<=1&&(n.currentSessionTime=0,n.setState(ue,!1),n.emit("ended")),n.emit(V,{currentTime:n.currentSessionTime}),this.reset_state(n)}),n.on(u,function(e){if(!e.data)return;const{field:t,value:o}=e.data;switch(t){case pe:return void(-1!==o||n.opts.live||n.setOpts({live:!0}));case Se:return n.muted=o;case he:return n.volume=o;case ye:return n.emit("dvr/window",o.end-o.start);case me:return Math.abs(o-n.currentSessionTime)>=1.5&&n.emit("seeked"),n.currentSessionTime=o,n.emit(H,o);case fe:return"PLAYING"==o?n.emit("playing"):"PAUSED"==o?n.emit("pause"):void 0;case ve:var r=(o||{}).fake_session||se;return ce(n,{device:r.device_name(),state:r.state()}),r.hide_controls&&n.setState("no-chromecast-controls",!0),n.setState(de,!1),n.hasState("is-loaded")||-1===n.duration||n.setOpts({duration:n.duration}),n.setState(Y,!0)}}),n.on(l,e=>{if(e.data)switch(e.detail.sessionState){case cast.framework.SessionState.SESSION_ENDED:if(!n.hasState(B))return;return O.casting_player=void 0,n.emit(V,{currentTime:n.currentSessionTime}),this.reset_state(n);case cast.framework.SessionState.SESSION_RESUMED:if(!_(n))return;return O.casting_player=n,n.setState(n.paused?ue:le,!0),n.setState(B,!0),n.setState(z,!0),n.setState(Y,!0),n.emit(H),n.currentSessionTime=n.currentTime,ce(n,{device:Z(),state:ne()}),n.setState(de,!1);case cast.framework.SessionState.SESSION_STARTED:if(n!==O.casting_player)return;Q(n,this.flowplayer.instances,console.debug,console.error)}})}reset_state(e){e.setState(Y,!1),e.setState(B,!1),e.setState(le,!1),e.setState(ue,!0),e.setState(de,!0)}}ChromecastPlugin.pluginName="chromecast",ChromecastPlugin.apps=j,ChromecastPlugin.events=m,ChromecastPlugin.hlsSegmentFormat={audio:p,video:f};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,ChromecastPlugin)});
|
|
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.chromecast=t())}(this,function(){"use strict";function e(e){const t=document.createElement("a");t.href=e;const n=t.pathname&&t.pathname.split(".");return n.length>1&&n[n.length-1]}function t(e){switch(e){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return e}}const n=n=>{var{src:o}=n,r=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}(n,["src"]);return[Object.assign({src:o,type:o?t("video/"+e(o)):""},r)]};function o(e){return n({src:e})}class Pipe{static of(e){return new Pipe(e)}static maybe(e,t,...n){return null==e?e:t.apply(e,[e,...n])}constructor(e){this.data=e}tap(e,...t){return e.apply(this,[this.data,...t]),new Pipe(this.data)}fmap(e,...t){const n=e.apply(this,[this.data,...t]);return new Pipe(n)}unwrap(){return this.data}}const r="chromecast:available",a="chromecast:unavailable",i="chromecast:start",s="chromecast:idle",c="chromecast:state:changed",l="chromecast:session:changed",u="chromecast:field:update",d="chromecast:media";var m=Object.freeze({__proto__:null,CAST_AVAILABLE:r,CAST_UNAVAILABLE:a,CAST_START_CASTING:i,CAST_IDLE:s,CAST_STATE_CHANGED:c,CAST_SESSION_CHANGED:l,CAST_FIELD_UPDATE:u,CAST_MEDIA_LOAD_REQUEST:d});const p={AAC:"aac",AC3:"ac3",E_AC3:"e_ac3",FMP4:"fmp4",MP3:"mp3",TS:"ts",TS_AAC:"ts_aac"},f={FMP4:"fmp4",MPEG2_TS:"mpeg2_ts"},v=/(video\/mp4)|(application\/x-mpegurl)|(video\/mpd)|(application\/dash\+xml)/;function h(){var e;return(null===(e=b())||void 0===e?void 0:e.getCurrentSession())||null}function S(e){return T(e).unwrap().shift()}function y(e,t){const n=e.opts.chromecast;(null==n?void 0:n.hlsSegmentFormat)&&Object.values(p).includes(n.hlsSegmentFormat.toLowerCase())&&(t.hlsSegmentFormat=n.hlsSegmentFormat),(null==n?void 0:n.hlsVideoSegmentFormat)&&Object.values(f).includes(n.hlsVideoSegmentFormat.toLowerCase())&&(t.hlsVideoSegmentFormat=n.hlsVideoSegmentFormat)}function g(){var e;return(null===(e=h())||void 0===e?void 0:e.getMediaSession())||null}function _(e){var t,n;const o=T(e).unwrap().map(function(e){return null==e?void 0:e.src}),r=null===(n=null===(t=g())||void 0===t?void 0:t.media)||void 0===n?void 0:n.contentId;return!!r&&!!~o.indexOf(r)}function w(e){var t;return(null===(t=e.type)||void 0===t?void 0:t.match(v))||!1}function E(e,t){if(!t.opts.src)return e;const n=(Array.isArray(t.opts.src)?t.opts.src:[t.opts.src]).map(e=>"string"==typeof e?o(e)[0]:e);return e.map(e=>{const t=n.find(t=>t.src===e.src);return t&&t.drm?Object.assign(Object.assign({},e),{drm:t.drm}):e})}function T(e){return Pipe.of(e).fmap(()=>e.original_src||[]).fmap(function(e){return"string"==typeof e?o(e):e}).fmap(E,e).fmap(function(e){return e.filter(w)})}function b(){var e,t,n;return null===(n=null===(t=null===(e=window.cast)||void 0===e?void 0:e.framework)||void 0===t?void 0:t.CastContext)||void 0===n?void 0:n.getInstance()}function A(e,t){var n;null===(n=O.casting_player)||void 0===n||n.emit(e,t)}function C(e,t,n){e.forEach(function(e){e!==O.casting_player&&e.emit(t,n)})}function k(e,t,n){e.forEach(function(e){e.emit(t,n)})}const O={remote_player:void 0,controller:void 0,listener:void 0};function L(e){O.controller&&O.listener&&O.controller.removeEventListener(cast.framework.RemotePlayerEventType.ANY_CHANGE,O.listener),O.remote_player=new cast.framework.RemotePlayer,O.controller=new cast.framework.RemotePlayerController(O.remote_player),O.listener=P.bind(null,e),O.controller.addEventListener(cast.framework.RemotePlayerEventType.ANY_CHANGE,O.listener)}function P(e,t){var n;if((null===(n=b())||void 0===n?void 0:n.getCastState())!==cast.framework.CastState.NOT_CONNECTED)return"IDLE"===t.value?C(e,s):void A(u,t)}function I(e){return Array.from(e.textTracks).filter(e=>["subtitles","captions"].includes(e.kind))}function x(e){return I(e).flatMap((t,n)=>{try{const o=e.querySelector("#"+t.id);if(!(o instanceof HTMLTrackElement&&o.lang))return[];const r=new chrome.cast.media.Track(n+1e3,chrome.cast.media.TrackType.TEXT);return r.trackContentType="text/vtt",r.subtype=chrome.cast.media.TextTrackType.SUBTITLES,r.trackContentId=o.src,r.name=o.label,r.language=o.lang,r}catch(e){return[]}})}function M(e){var t;const n=new chrome.cast.media.EditTracksInfoRequest(e);null===(t=g())||void 0===t||t.editTracksInfo(n,console.debug,console.error)}var N=Object.freeze({__proto__:null,getCurrentSession:h,getMedia:S,setMediaSegmentFormat:y,getMediaSession:g,isSame:_,is_supported_media:w,injectDRMConfiguration:E,normalizeSrc:T,getCastContext:b,broadcast_to_active:A,broadcast_to_idle:C,broadcast:k,SINGLETONS:O,refresh_singletons:L,onremotechange:P,tracks:I,cast_tracks:x,editTracks:M});const D="940D4BE4";var j=Object.freeze({__proto__:null,STABLE:D,CANARY:"6F71FA7C",LOCAL:"5258CA32"});const F="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1";function R(e,t,n){if(document.querySelector("script[src='"+F+"']"))return q(n);!function(){const e=document.createElement("script");e.async=!0,e.src=F,document.head.appendChild(e)}(),window.__onGCastApiAvailable=function(){!function(e,t,n){var o;if(!G())return;const r=(null===(o=e.chromecast)||void 0===o?void 0:o.app)||D,a=b();if(!a)return;a.setOptions({receiverApplicationId:r,autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(e){k(n,c,e)}),a.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(e){L(n),k(n,l,e)})}(e,0,n),q(n)}}function G(){return"object"==typeof window.cast&&"object"==typeof chrome.cast}function q(e){if(G())return k(e,r);k(e,a)}const H="timeupdate",V="remotesession:ended",U="is-cast-available",B="is-casting",z="has-casted",Y="is-chromecast-playing";function $(e,t){const n=e.seekable;if("object"!=typeof e.opts||0==n.length)return{head:0,tail:0};const o=function(e){var t;const n=e.seekable;return n.length?e.hasState(Y)||!(null===(t=e.hls)||void 0===t?void 0:t.liveSyncPosition)?n.end(n.length-1):e.hls.liveSyncPosition:0}(e),r=t||e.live_state.dvr_window;return{head:o,tail:"number"!=typeof r||o-r<0?n.start(0):o-r}}function J(e){const t=e.currentTime,n=$(e);return{progress:Math.min(100,Math.max(0,(t-n.tail)/(n.head-n.tail)*100)),is_live:t-n.head>=-10}}const X={player:void 0,listener:void 0};function Q(e,t,n,o){var r,a,i,c,l;const u=h();if(!u)return;const m=S(e);if(!m||!m.src)return;O.casting_player=e;const p=new chrome.cast.media.MediaInfo(m.src,m.type||"");p.metadata=new chrome.cast.media.GenericMediaMetadata,function(e){X.player&&X.listener&&X.player.off("playing",X.listener);const t={currentTime:e.currentSessionTime,liveState:e.live_state,progress:J(e).progress};X.player=e,X.listener=()=>{setTimeout(()=>{!function(e,t){const n=g();if(!n)return;if(-1!==n.media.duration)return e.currentTime=t.currentTime;const o=n.liveSeekableRange;if(!o||"number"!=typeof o.end||"number"!=typeof o.start)return;if(void 0===t.liveState.dvr_window||!t.liveState.dvr)return;e.currentTime=(o.end-o.start)*(t.progress/100)}(e,t)},1e3)},e.once("playing",X.listener)}(e);const f={health:e.health,text_tracks:x(e),active_tracks:{active_audio:(null===(a=null===(r=null==e?void 0:e.asel)||void 0===r?void 0:r.active_track)||void 0===a?void 0:a.name)||(null===(c=null===(i=null==e?void 0:e.asel)||void 0===i?void 0:i.active_track)||void 0===c?void 0:c.lang),active_text:null===(l=I(e).find(e=>e.is_active))||void 0===l?void 0:l.label}};m.drm&&(f.drm=m.drm),localStorage.__fpChromecastDebug&&(f.debug=!0),e.opt("ads")&&(f.ads=e.opt("ads")),p.customData=f,y(e,p);const v=new chrome.cast.media.LoadRequest(p);v.customData=e.opt("chromecast",{}),v.customData.metadata=e.opt("metadata"),e.emit(d,{request:v}),console.debug("cast:request(%o)",v),u.loadMedia(v).then(()=>{e.emit("remotesession:started"),e.setState(z,!0),e.setState(B,!0),L(t);const n=O.remote_player;n&&(e.volume=n.volumeLevel,e.muted=n.isMuted),C(t,s)},o)}function W(){return!!g()}function K(){return!!h()}function Z(){var e;return null===(e=h())||void 0===e?void 0:e.getCastDevice().friendlyName}function ee(){var e;return(null===(e=null==N?void 0:h())||void 0===e?void 0:e.getMediaSession()).getEstimatedLiveSeekableRange()}function te(){var e,t;return null===(t=null===(e=g())||void 0===e?void 0:e.media)||void 0===t?void 0:t.duration}function ne(){var e;return null===(e=g())||void 0===e?void 0:e.playerState}function oe(e){var t;return e?re(e):null===(t=g())||void 0===t?void 0:t.getEstimatedTime()}function re(e){const t=g();if(!t)return e;const n=new chrome.cast.media.SeekRequest;return n.currentTime=e,t.seek(n,console.debug,console.error),e}function ae(){var e;return null===(e=g())||void 0===e?void 0:e.play(new chrome.cast.media.PlayRequest,console.debug,console.error)}function ie(){var e;return null===(e=g())||void 0===e?void 0:e.pause(new chrome.cast.media.PauseRequest,console.debug,console.error)}var se=Object.freeze({__proto__:null,load:Q,has_media:W,exists:K,device_name:Z,seekable_ranges:ee,duration:te,state:ne,currentTime:oe,seek:re,play:ae,pause:ie});function ce(e,t){if(!e.root)return;const n=e.root.querySelector(".fp-chromecast p");if(!n)return;let o="";o=e.i18n("chromecast.message","{{state}} on {{device}}").replace("{{device}}",(null==t?void 0:t.device)||"chromecast"),o=o.replace("{{state}}",((null==t?void 0:t.state)||"").toLowerCase()),n.textContent=o}const le="is-playing",ue="is-paused",de="is-starting";const me="currentTime",pe="duration",fe="playerState",ve="videoInfo",he="volumeLevel",Se="isMuted",ye="liveSeekableRange",ge=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const o=window.customElements.get(t);if(!o)throw new Error(`no default flowplayer component with the name ${t} exists`);const r=window.customElements.get(n);return"function"!=typeof r?o:r})(e._customElements,t))(e);class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class FlowplayerChromecastIcon extends FlowplayerComponent{constructor(e){super(e),this.classList.add("fp-cast-button"),this.setAttribute("tabindex","-1"),this.setAttribute("role","button"),this.setAttribute("aria-hidden","true"),this.cast_launcher=document.createElement("google-cast-launcher"),this.cast_launcher.setAttribute("inert","true"),this.append(this.cast_launcher),this.addEventListener("click",t=>{const n=h();if(n)return n.endSession(!0);e.emit(i),t.target===this&&this.cast_launcher.click()}),e.on(c,t=>{const n=t.detail.castState;n&&(this.setAttribute("tabindex",n===cast.framework.CastState.NO_DEVICES_AVAILABLE?"-1":"0"),this.setAttribute("aria-hidden",(n===cast.framework.CastState.NO_DEVICES_AVAILABLE)+""),this.setAttribute("aria-label",n===cast.framework.CastState.NOT_CONNECTED?e.i18n("chromecast.start","start casting"):e.i18n("chromecast.stop","stop casting")))})}}function _e(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}const we="flowplayer-chromecast-icon",Ee=1,Te=.001;const be=new WeakMap;function Ae(e,t,n="used"){var o;const r=`${t}:${n}`,a=null!==(o=be.get(e))&&void 0!==o?o:new Set;if(a.has(r))return;a.add(r),be.set(e,a);const i=()=>function(e,{feature_name:t,behavior:n,sample_rate:o}){t&&(o||(o=Ee),e.emit("flowplayer:feature",{feature_name:t,behavior:n,sample_rate:o}))}(e,{feature_name:t,behavior:n,sample_rate:Te});e.opt("metadata.media_id")?i():e.once("health:ready",i)}class ChromecastPlugin{constructor(e){var t,n,o;this.flowplayer=e,t=e,n=we,o=FlowplayerChromecastIcon,window.customElements.get(n)||window.customElements.define(n,o),t.customElements.get(n)||t.customElements.set(n,n)}init(e,t,n){if("https:"!==location.protocol&&"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname)return console.warn("Secure URL required to enable Chromecast");R(e,0,this.flowplayer.instances),n.on("mount",function(){const t=_e(n,"flowplayer-middle");t&&function(e,t){const n=document.createElement("div");n.className="fp-chromecast";const o=document.createElement("p");t.poster&&(n.style.backgroundImage=["url(",t.poster,")"].join("")),n.append(o),e.prepend(n)}(t,{poster:e.poster});const o=_e(n,"flowplayer-header-right-zone");o&&o.prepend(ge(n,we))}),n.on(r,()=>{n.setState(U,!0),function(e,t){const n={play:function(){return new Promise(n=>_(e)?n(ae()):W()?n(Q(e,t,console.debug,console.error)):(Q(e,t,console.debug,console.error),void n()))},pause:function(){return _(e)?ie():HTMLMediaElement.prototype.pause.call(e)}};n.currentTime={get:oe,set:oe},n.seekable={get:()=>{const e=ee();return{start:()=>(null==e?void 0:e.start)||0,end:()=>(null==e?void 0:e.end)||0,length:1}}},n.duration={get:te},n.paused={get:function(){return"PAUSED"===ne()}},n.playing={get:function(){return"PLAYING"===ne()}},Object.keys(n).forEach(function(t){if("object"==typeof n[t])return Object.defineProperty(e,t,{get:function(){var o,r;return _(e)?n[t].get():null===(r=null===(o=Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,t))||void 0===o?void 0:o.get)||void 0===r?void 0:r.call(this)},set:function(o){var r,a;return _(e)?n[t].set(o):null===(a=null===(r=Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,t))||void 0===r?void 0:r.set)||void 0===a?void 0:a.call(this,o)}});const o=e[t];e[t]=function(){const r=[].slice.apply(arguments);return K()?n[t].apply(e,r):o.apply(e,r)}})}(n,this.flowplayer.instances)}),n.on(a,function(){n.setState(U,!1)}),n.on(i,()=>{if(Ae(n,"chromecast"),O.casting_player=n,this.flowplayer.instances.forEach(e=>{e.togglePlay(!1),e.currentSessionTime=e.hasState("is-ended")?0:e.currentTime}),W())return Q(n,this.flowplayer.instances,console.debug,console.error)}),n.on("volumechange",()=>{const e=O.remote_player,t=O.controller;if(!W()||!e||!t)return;const o=n.volume,r=n.muted;o!==e.volumeLevel&&(e.volumeLevel=o,t.setVolumeLevel()),r!==e.isMuted&&t.muteOrUnmute()}),n.on("tracks:text:updated",function(e){var t,o,r;if(W())return e.data?void M((null===(r=null===(o=null===(t=g())||void 0===t?void 0:t.media)||void 0===o?void 0:o.tracks)||void 0===r?void 0:r.filter(e=>"TEXT"===e.type).filter(e=>{var t;return e.name===(null===(t=I(n).find(e=>e.is_active))||void 0===t?void 0:t.label)}).map(e=>e.trackId))||[]):M([])}),n.on("audio:update",()=>{W()&&setTimeout(()=>{var e,t,o,r,a;const i=null===(e=null==n?void 0:n.asel)||void 0===e?void 0:e.active_track,s=null===(a=null===(r=null===(o=null===(t=g())||void 0===t?void 0:t.media)||void 0===o?void 0:o.tracks)||void 0===r?void 0:r.filter(e=>"AUDIO"===e.type).find(e=>void 0!==e.name?e.name===(null==i?void 0:i.name):e.language===(null==i?void 0:i.lang)))||void 0===a?void 0:a.trackId;"number"==typeof s&&M([s])},0)}),n.on(s,()=>{if(n.setState(de,!0),!n.hasState(B))return;const e=n.opt("duration");"number"==typeof e&&Math.abs(e-n.currentSessionTime)<=1&&(n.currentSessionTime=0,n.setState(ue,!1),n.emit("ended")),n.emit(V,{currentTime:n.currentSessionTime}),this.reset_state(n)}),n.on(u,function(e){if(!e.data)return;const{field:t,value:o}=e.data;switch(t){case pe:return void(-1!==o||n.opts.live||n.setOpts({live:!0}));case Se:return n.muted=o;case he:return n.volume=o;case ye:return n.emit("dvr/window",o.end-o.start);case me:return Math.abs(o-n.currentSessionTime)>=1.5&&n.emit("seeked"),n.currentSessionTime=o,n.emit(H,o);case fe:return"PLAYING"==o?n.emit("playing"):"PAUSED"==o?n.emit("pause"):void 0;case ve:var r=(o||{}).fake_session||se;return ce(n,{device:r.device_name(),state:r.state()}),r.hide_controls&&n.setState("no-chromecast-controls",!0),n.setState(de,!1),n.hasState("is-loaded")||-1===n.duration||n.setOpts({duration:n.duration}),n.setState(Y,!0)}}),n.on(l,e=>{if(e.data)switch(e.detail.sessionState){case cast.framework.SessionState.SESSION_ENDED:if(!n.hasState(B))return;return O.casting_player=void 0,n.emit(V,{currentTime:n.currentSessionTime}),this.reset_state(n);case cast.framework.SessionState.SESSION_RESUMED:if(!_(n))return;return O.casting_player=n,n.setState(n.paused?ue:le,!0),n.setState(B,!0),n.setState(z,!0),n.setState(Y,!0),n.emit(H),n.currentSessionTime=n.currentTime,ce(n,{device:Z(),state:ne()}),n.setState(de,!1);case cast.framework.SessionState.SESSION_STARTED:if(n!==O.casting_player)return;Q(n,this.flowplayer.instances,console.debug,console.error)}})}reset_state(e){e.setState(Y,!1),e.setState(B,!1),e.setState(le,!1),e.setState(ue,!0),e.setState(de,!0)}}ChromecastPlugin.pluginName="chromecast",ChromecastPlugin.apps=j,ChromecastPlugin.events=m,ChromecastPlugin.hlsSegmentFormat={audio:p,video:f};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,ChromecastPlugin)});
|
package/plugins/consent.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.consent=t())}(this,function(){"use strict";class PlayerStorage{constructor(e,t){this.implementation=e,t&&t.keys().forEach(e=>{"string"==typeof t.implementation[e]&&this.implementation.setItem(e,t.implementation[e])})}keys(){var e;const t=[];for(var n=0;n<this.implementation.length;n++)(null===(e=this.implementation.key(n))||void 0===e?void 0:e.startsWith("flowplayer/"))&&t.push(this.implementation.key(n));return t}removeItem(e){try{this.implementation.removeItem(`flowplayer/${e}`)}catch(e){}}getItem(e){try{return this.implementation.getItem(`flowplayer/${e}`)}catch(e){return null}}setItem(e,t){try{this.implementation.setItem(`flowplayer/${e}`,t)}catch(e){}}clear(){try{this.keys().forEach(e=>this.implementation.removeItem(e))}catch(e){}}get length(){try{return this.keys().length}catch(e){return 0}}key(e){try{return this.implementation.key(e)}catch(e){return null}}}var e,t
|
|
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.consent=t())}(this,function(){"use strict";class PlayerStorage{constructor(e,t){this.implementation=e,t&&t.keys().forEach(e=>{"string"==typeof t.implementation[e]&&this.implementation.setItem(e,t.implementation[e])})}keys(){var e;const t=[];for(var n=0;n<this.implementation.length;n++)(null===(e=this.implementation.key(n))||void 0===e?void 0:e.startsWith("flowplayer/"))&&t.push(this.implementation.key(n));return t}removeItem(e){try{this.implementation.removeItem(`flowplayer/${e}`)}catch(e){}}getItem(e){try{return this.implementation.getItem(`flowplayer/${e}`)}catch(e){return null}}setItem(e,t){try{this.implementation.setItem(`flowplayer/${e}`,t)}catch(e){}}clear(){try{this.keys().forEach(e=>this.implementation.removeItem(e))}catch(e){}}get length(){try{return this.keys().length}catch(e){return 0}}key(e){try{return this.implementation.key(e)}catch(e){return null}}}var e,t;!function(e){e[e.ALL=1]="ALL",e[e.NONE=2]="NONE"}(e||(e={})),function(e){e[e.ALL=8]="ALL",e[e.NONE=16]="NONE"}(t||(t={}));const n=1,r=.001;const a=new WeakMap;function o(e,t,o="used"){var s;const i=`${t}:${o}`,l=null!==(s=a.get(e))&&void 0!==s?s:new Set;if(l.has(i))return;l.add(i),a.set(e,l);const c=()=>function(e,{feature_name:t,behavior:r,sample_rate:a}){t&&(a||(a=n),e.emit("flowplayer:feature",{feature_name:t,behavior:r,sample_rate:a}))}(e,{feature_name:t,behavior:o,sample_rate:r});e.opt("metadata.media_id")?c():e.once("health:ready",c)}var s;const i=((s=class ConsentPlugin{constructor(e,t){this.player=t}init(n,r,a){void 0===n.consent&&(n.consent=t.NONE|e.NONE),this.adapt(n),a.on("config",e=>{this.adapt(e.detail)});const o=e=>{a.setOpts({consent:e.detail})};document.addEventListener("flowplayer/consent",o),a.on("reap",()=>document.removeEventListener("flowplayer/consent",o))}adapt(n){n.consent!==this.current_value&&(this.current_value=n.consent,"number"==typeof this.current_value&&(o(this.player,"consent"),t.ALL&this.current_value?this.setStorage(t.ALL):t.NONE&this.current_value&&this.setStorage(t.NONE),e.ALL&this.current_value?this.setTracking(e.ALL):e.NONE&this.current_value&&this.setTracking(e.NONE)))}setStorage(e){try{const n=this.player._storage;switch(this.player.setState("consent-no-storage",e===t.NONE),e){case t.ALL:this.player._storage=new PlayerStorage(localStorage,this.player._storage);break;case t.NONE:this.player._storage=new PlayerStorage(sessionStorage,n),n.clear()}}catch(e){console.debug(e)}}setTracking(t){var n,r;switch(this.player.setState("consent-no-tracking",t===e.NONE),t){case e.ALL:null===(n=this.player.health)||void 0===n||n.toggle(!0);break;case e.NONE:null===(r=this.player.health)||void 0===r||r.toggle(!1)}}}).pluginName="consent",s.tracking=e,s.storage=t,s);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,i)});
|
package/plugins/context-menu.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.context_menu=t())}(this,function(){"use strict";const e="contextmenu",t=document.createElement;function n(e,n){const o=n.href?function(e){const n=t("a");return n.href=e,n}(n.href):t("span"),s=n.onclick;return n.class&&(o.className=n.class),n.text&&(o.innerText=n.text),s&&o.addEventListener("click",function(t){s(t,e)}),o}
|
|
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.context_menu=t())}(this,function(){"use strict";const e="contextmenu",t=document.createElement;function n(e,n){const o=n.href?function(e){const n=t("a");return n.href=e,n}(n.href):t("span"),s=n.onclick;return n.class&&(o.className=n.class),n.text&&(o.innerText=n.text),s&&o.addEventListener("click",function(t){s(t,e)}),o}const o=1,s=.001;const r=new WeakMap;function c(e,t,n="used"){var c;const i=`${t}:${n}`,a=null!==(c=r.get(e))&&void 0!==c?c:new Set;if(a.has(i))return;a.add(i),r.set(e,a);const l=()=>function(e,{feature_name:t,behavior:n,sample_rate:s}){t&&(s||(s=o),e.emit("flowplayer:feature",{feature_name:t,behavior:n,sample_rate:s}))}(e,{feature_name:t,behavior:n,sample_rate:s});e.opt("metadata.media_id")?l():e.once("health:ready",l)}var i;const a=".fp-active",l=[{text:"Flowplayer © "+(new Date).getFullYear()},{href:"https://flowplayer.com",text:"About this player"},{href:"https://flowplayer.com/license/",text:"GPL based license"}];let u=!1;const f=e=>{e.classList.remove(a),u=!1};document.addEventListener("click",e=>{2!=e.button&&0!=u&&f(u)}),document.addEventListener("keyup",function(){u&&f(u)});const p=((i=class ContextMenu{init(t,o,s){const r=t.context_menu||l,i=document.createElement("div");i.className=".fp-context-menu .fp-menu",i.append(...r.map(e=>n(s,e)));const f=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(s,"flowplayer-ui");f&&f.addEventListener(e,function(t){if(!i.parentNode)return;t.preventDefault(),c(s,"context-menu"),s.emit(e);const n=i.getBoundingClientRect();i.style.left=t.clientX-window.scrollX-n.left+2+"px",i.style.right=t.clientY+window.scrollY-n.top-5+"px",i.classList.contains(a)||(i.classList.contains(a),u=i)})}}).pluginName="context-menu",i);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,p)});
|
package/plugins/cuepoints.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.cuepoints=t())}(this,function(){"use strict";const e="cuepoints",t="cuepointstart",n="cuepointend";var o=Object.freeze({__proto__:null,CUEPOINTS:e,CUEPOINT_START:t,CUEPOINT_END:n});const r="flowplayer-cue",i=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const o=window.customElements.get(t);if(!o)throw new Error(`no default flowplayer component with the name ${t} exists`);const r=window.customElements.get(n);return"function"!=typeof r?o:r})(e._customElements,t))(e);function s(e,t,n){const o=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(o),e}function c(e){const t=e._customElements.get(r);t&&Array.from(e.root.querySelectorAll(t)).forEach(e=>{e.remove()})}function
|
|
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.cuepoints=t())}(this,function(){"use strict";const e="cuepoints",t="cuepointstart",n="cuepointend";var o=Object.freeze({__proto__:null,CUEPOINTS:e,CUEPOINT_START:t,CUEPOINT_END:n});const r="flowplayer-cue",i=(e,t)=>new(((e,t)=>{const n=e.get(t);if(!n)throw new Error(`no flowplayer component with the name ${t} exists`);const o=window.customElements.get(t);if(!o)throw new Error(`no default flowplayer component with the name ${t} exists`);const r=window.customElements.get(n);return"function"!=typeof r?o:r})(e._customElements,t))(e);function s(e,t,n){const o=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(o),e}!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 a=1,u=.001;const c=new WeakMap;function l(e,t,n="used"){var o;const r=`${t}:${n}`,i=null!==(o=c.get(e))&&void 0!==o?o:new Set;if(i.has(r))return;i.add(r),c.set(e,i);const s=()=>function(e,{feature_name:t,behavior:n,sample_rate:o}){t&&(o||(o=a),e.emit("flowplayer:feature",{feature_name:t,behavior:n,sample_rate:o}))}(e,{feature_name:t,behavior:n,sample_rate:u});e.opt("metadata.media_id")?s():e.once("health:ready",s)}function p(e){const t=e._customElements.get(r);t&&Array.from(e.root.querySelectorAll(t)).forEach(e=>{e.remove()})}function f(e,t){var n;const o=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(e,"flowplayer-timeline-bar"),a=e.duration,u=null===(n=null==e?void 0:e.opts)||void 0===n?void 0:n.draw_cuepoints;if(!o||e.hasState("is-live")||!isFinite(a)||!Array.isArray(t)||!u)return;let c=0;t.forEach(t=>{if(void 0===t.startTime||t.startTime<0||!t.endTime||t.startTime===t.endTime)return;const n=Math.round(t.startTime/a*1e3)/10;if(n>100||n<0)return;const u=t.endTime-t.startTime,l=i(e,r);s(l,"cue:attributes",{left:n+"%",width:u/a*100+"%"}),o.append(l),c++}),c&&l(e,"cuepoints")}class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class CueComponent extends FlowplayerComponent{constructor(e){super(e),this.className="fp-cuepoint",this.addEventListener("cue:attributes",e=>{this.style.setProperty("left",e.detail.left),this.style.setProperty("width",e.detail.width)})}}var d;const m=((d=class Cuepoints{constructor(e){((e,t,n)=>{window.customElements.get(t)||window.customElements.define(t,n),e.customElements.get(t)||e.customElements.set(t,t)})(e,r,CueComponent)}init(o,r,i){if(!i.reaper)return;const s=i.addTextTrack("metadata","fp-cuepoints");s.removeCue=function(e){this===d&&TextTrack.prototype.removeCue.call(s,e)},i.reaper.set("cuepoints",[]),i.on("config",function(t){var n;if(!i.reaper)return;(null===(n=t.data)||void 0===n?void 0:n.cuepoints)!==i.reaper.get("cuepoints")&&i.emit(e,{cuepoints:o.cuepoints})}),i.on("durationchange",()=>{i.reaper&&(p(i),f(i,i.reaper.get("cuepoints")))}),i.on(e,e=>{var o;if(!i.reaper)return;const r=(null===(o=e.data)||void 0===o?void 0:o.cuepoints)||[];i.reaper.set("cuepoints",r),Array.from(s.cues||{length:0}).forEach(e=>s.removeCue.call(this.constructor,e)),p(i),r.map(function(e){return function(e,o){try{const r=new VTTCue(o.startTime,o.endTime,o.text||"");return r.id=o.id||"",r.onenter=e.emit.bind(e,t,{cuepoint:o}),r.onexit=e.emit.bind(e,n,{cuepoint:o}),r}catch(e){if(o.startTime===o.endTime)return console.warn("Cue(:error)> startTime cannot equal endTime on this platform");throw e}}(i,e)}).forEach(function(e){e&&s.addCue(e)}),f(i,r)})}}).pluginName="cuepoints",d.events=o,d);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const n=e.flowplayer;return"function"==typeof n?(n(t),t):(Array.isArray(n.extensions)||(n.extensions=[]),~n.extensions.indexOf(t)||n.extensions.push(t),t)}(window,m)});
|