Files
lan-play/web/controlbar.min.js
T
Ultradesu eb0d4fb1c5
Build and Publish / Build and Publish Docker Image (push) Successful in 10m8s
Init
2026-08-05 12:32:52 +01:00

2 lines
23 KiB
JavaScript

var DashControlBarModule=(()=>{var p=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var T=(h,e)=>{for(var t in e)p(h,t,{get:e[t],enumerable:!0})},B=(h,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of g(e))!C.call(h,s)&&s!==t&&p(h,s,{get:()=>e[s],enumerable:!(i=M(e,s))||i.enumerable});return h};var S=h=>B(p({},"__esModule",{value:!0}),h);var D={};T(D,{ControlBar:()=>_});function m(h){if(isNaN(h)||!isFinite(h))return"00:00";let e=h<0;h=Math.abs(Math.floor(h));let t=Math.floor(h/3600),i=Math.floor(h%3600/60),s=h%60,a=r=>String(r).padStart(2,"0"),l=e?"- ":"";return t>0?`${l}${a(t)}:${a(i)}:${a(s)}`:`${l}${a(i)}:${a(s)}`}function n(h,e={},...t){let i=document.createElement(h);for(let[s,a]of Object.entries(e))s==="className"?i.className=a:s==="textContent"?i.textContent=a:s==="innerHTML"?i.innerHTML=a:s.startsWith("on")&&typeof a=="function"?i.addEventListener(s.slice(2).toLowerCase(),a):i.setAttribute(s,a);for(let s of t)typeof s=="string"?i.appendChild(document.createTextNode(s)):s&&i.appendChild(s);return i}var _=class{constructor(e,t){this.player=e,this.video=t,this.container=null,this.wrapper=null,this.playPauseBtn=null,this.playPauseIcon=null,this.seekBackBtn=null,this.seekForwardBtn=null,this.nextBtn=null,this.timeDisplay=null,this.durationDisplay=null,this.seekbarContainer=null,this.seekbarPlayed=null,this.seekbarBuffer=null,this.volumeSlider=null,this.muteBtn=null,this.muteIcon=null,this.fullscreenBtn=null,this.fullscreenIcon=null,this.bitrateBtn=null,this.bitrateMenu=null,this.trackBtn=null,this.trackMenu=null,this.captionBtn=null,this.captionMenu=null,this.timeSeparator=null,this.rateDownBtn=null,this.rateUpBtn=null,this.rateDisplay=null,this.thumbnailContainer=null,this.thumbnailElem=null,this.thumbnailTimeLabel=null,this._seeking=!1,this._hideTimer=null,this._enabled=!1,this._duration=0,this._isDynamic=!1,this._vodDuration=null,this._vodOffset=0,this._lastVolume=1,this._isFullscreen=!1,this._activeMenu=null,this._selectionHandler=null,this._seekHandler=null,this._nextHandler=null,this._domListeners=[],this._playerListeners=[],this._onMouseMove=this._onMouseMoveBound.bind(this),this._onMouseLeave=this._onMouseLeaveBound.bind(this),this._onFullscreenChange=this._onFullscreenChangeBound.bind(this),this._onVideoClick=()=>this._togglePlayPause()}init(e){if(typeof e=="string"?this.wrapper=document.querySelector(e):this.wrapper=e,!this.wrapper)throw new Error("ControlBar: wrapper element not found");this._buildDOM(),this.wrapper.appendChild(this.container),this._attachDOMEvents(),this._attachPlayerEvents(),this.volumeSlider.value=1,this._updatePlayPauseIcon()}enable(){this._enabled=!0,this.container.classList.remove("cb-disabled")}disable(){this._enabled=!1,this.container.classList.add("cb-disabled"),this._closeAllMenus()}reset(){this._seeking=!1,this._duration=0,this._isDynamic=!1,this.seekbarPlayed.style.width="0%",this.seekbarBuffer.style.width="0%",this.timeDisplay.textContent="00:00",this.durationDisplay.textContent="00:00",this.durationDisplay.classList.remove("cb-live-indicator","cb-at-live-edge"),this.timeSeparator&&this.timeSeparator.classList.remove("cb-hidden-element"),this._updateRateDisplay(1),this._closeAllMenus(),this._destroyMenus()}setMuted(e){e?(this._lastVolume=parseFloat(this.volumeSlider.value)||1,this.volumeSlider.value=0):this.volumeSlider.value=this._lastVolume||1,this.muteIcon.className=e?"bi bi-volume-mute-fill":"bi bi-volume-up-fill"}syncMuteState(){try{let e=parseFloat(this.volumeSlider.value),t=e===0||this.muteIcon.className==="bi bi-volume-mute-fill";this.player.setVolume(t?0:e),this.player.setMute(t)}catch(e){}}refreshTracks(){this._rebuildTrackMenu(),this._rebuildCaptionMenu()}setVodDuration(e,t=0){let i=Number(e);this._vodDuration=Number.isFinite(i)&&i>0?i:null;let s=Number(t);this._vodOffset=Number.isFinite(s)&&s>0?s:0}onSeekRequested(e){this._seekHandler=typeof e=="function"?e:null}onNextRequested(e){this._nextHandler=typeof e=="function"?e:null}setNextAvailable(e){var t;(t=this.nextBtn)==null||t.classList.toggle("cb-hidden-element",!e)}onTrackSelected(e){this._selectionHandler=typeof e=="function"?e:null}_notifyTrackSelected(e,t){this._selectionHandler&&this._selectionHandler(e,t)}destroy(){this._detachDOMEvents(),this._detachPlayerEvents(),this._closeAllMenus(),this._destroyMenus(),clearTimeout(this._hideTimer),this._setCloseButtonHidden(!1),this.container&&this.container.parentNode&&this.container.parentNode.removeChild(this.container)}_buildDOM(){this.thumbnailElem=n("div",{className:"cb-thumbnail-elem"}),this.thumbnailTimeLabel=n("div",{className:"cb-thumbnail-time"}),this.thumbnailContainer=n("div",{className:"cb-thumbnail-container cb-hidden-element"},this.thumbnailElem,this.thumbnailTimeLabel),this.seekbarBuffer=n("div",{className:"cb-seekbar-buffer",style:"width: 0%"}),this.seekbarPlayed=n("div",{className:"cb-seekbar-played",style:"width: 0%"}),this.seekbarContainer=n("div",{className:"cb-seekbar"},this.seekbarBuffer,this.seekbarPlayed);let e=n("div",{className:"cb-seekbar-row"},this.seekbarContainer);this.playPauseIcon=n("i",{className:"bi bi-play-fill"}),this.playPauseBtn=n("button",{className:"cb-btn",title:"Play/Pause"},this.playPauseIcon),this.seekBackBtn=n("button",{className:"cb-btn cb-skip-btn",title:"Back 15 seconds",textContent:"-15"}),this.seekForwardBtn=n("button",{className:"cb-btn cb-skip-btn",title:"Forward 15 seconds",textContent:"+15"}),this.nextBtn=n("button",{className:"cb-btn cb-hidden-element",title:"Next file"},n("i",{className:"bi bi-skip-forward-fill"})),this.timeDisplay=n("span",{className:"cb-time",textContent:"00:00"}),this.timeSeparator=n("span",{className:"cb-time cb-time-separator",textContent:"/"}),this.durationDisplay=n("span",{className:"cb-time",textContent:"00:00"});let t=n("div",{className:"cb-spacer"});this.muteIcon=n("i",{className:"bi bi-volume-up-fill"}),this.muteBtn=n("button",{className:"cb-btn",title:"Mute/Unmute"},this.muteIcon),this.volumeSlider=n("input",{type:"range",className:"cb-volume-slider",min:"0",max:"1",step:"0.05",value:"1"});let i=n("div",{className:"cb-volume-group"},this.muteBtn,this.volumeSlider);this.rateDownBtn=n("button",{className:"cb-btn cb-btn-sm",title:"Decrease speed"},n("i",{className:"bi bi-dash"})),this.rateDisplay=n("span",{className:"cb-rate-display",title:"Reset to 1x",textContent:"1.00x"}),this.rateUpBtn=n("button",{className:"cb-btn cb-btn-sm",title:"Increase speed"},n("i",{className:"bi bi-plus"}));let s=n("div",{className:"cb-rate-group"},this.rateDownBtn,this.rateDisplay,this.rateUpBtn);this.bitrateMenu=n("div",{className:"cb-menu cb-hidden-element"}),this.bitrateBtn=n("button",{className:"cb-btn cb-hidden-element",title:"Quality"},n("i",{className:"bi bi-sliders"}));let a=n("div",{className:"cb-menu-anchor"},this.bitrateBtn,this.bitrateMenu);this.trackMenu=n("div",{className:"cb-menu cb-hidden-element"}),this.trackBtn=n("button",{className:"cb-btn cb-hidden-element",title:"Tracks"},n("i",{className:"bi bi-music-note-list"}));let l=n("div",{className:"cb-menu-anchor"},this.trackBtn,this.trackMenu);this.captionMenu=n("div",{className:"cb-menu cb-hidden-element"}),this.captionBtn=n("button",{className:"cb-btn cb-hidden-element",title:"Captions"},n("i",{className:"bi bi-badge-cc"}));let r=n("div",{className:"cb-menu-anchor"},this.captionBtn,this.captionMenu);this.fullscreenIcon=n("i",{className:"bi bi-fullscreen"}),this.fullscreenBtn=n("button",{className:"cb-btn",title:"Fullscreen"},this.fullscreenIcon);let o=n("div",{className:"cb-controls-row"},this.playPauseBtn,this.seekBackBtn,this.seekForwardBtn,this.nextBtn,this.timeDisplay,this.timeSeparator,this.durationDisplay,t,i,s,a,l,r,this.fullscreenBtn);this.container=n("div",{className:"cb-controlbar cb-disabled"},this.thumbnailContainer,e,o)}_attachDOMEvents(){this._listen(this.playPauseBtn,"click",()=>this._togglePlayPause()),this._listen(this.seekBackBtn,"click",()=>this._requestRelativeSeek(-15)),this._listen(this.seekForwardBtn,"click",()=>this._requestRelativeSeek(15)),this._listen(this.nextBtn,"click",()=>{var e;return(e=this._nextHandler)==null?void 0:e.call(this)}),this._listen(this.muteBtn,"click",()=>this._toggleMute()),this._listen(this.fullscreenBtn,"click",()=>this._toggleFullscreen()),this._listen(this.volumeSlider,"input",()=>this._onVolumeInput()),this._listen(this.video,"click",this._onVideoClick),this._listen(this.durationDisplay,"click",()=>this._seekToLiveEdge()),this._listen(this.rateDownBtn,"click",()=>this._changeRate(-.25)),this._listen(this.rateUpBtn,"click",()=>this._changeRate(.25)),this._listen(this.rateDisplay,"click",()=>this._resetRate()),this._listen(this.seekbarContainer,"mousedown",e=>this._onSeekMouseDown(e)),this._listen(this.seekbarContainer,"mousemove",e=>this._onSeekMouseMove(e)),this._listen(this.seekbarContainer,"mouseleave",()=>this._onSeekMouseLeave()),this._listen(document,"mousemove",e=>this._onDocumentMouseMove(e)),this._listen(document,"mouseup",e=>this._onDocumentMouseUp(e)),this._listen(this.seekbarContainer,"touchstart",e=>this._onSeekTouchStart(e),{passive:!1}),this._listen(this.seekbarContainer,"touchmove",e=>this._onSeekTouchMove(e),{passive:!1}),this._listen(this.seekbarContainer,"touchend",e=>this._onSeekTouchEnd(e)),this._listen(this.wrapper,"mousemove",this._onMouseMove),this._listen(this.wrapper,"mouseleave",this._onMouseLeave),this._listen(this.wrapper,"touchstart",this._onMouseMove,{passive:!0}),this._listen(document,"fullscreenchange",this._onFullscreenChange),this._listen(document,"webkitfullscreenchange",this._onFullscreenChange),this._listen(this.bitrateBtn,"click",e=>{e.stopPropagation(),this._toggleMenu("bitrate")}),this._listen(this.trackBtn,"click",e=>{e.stopPropagation(),this._toggleMenu("track")}),this._listen(this.captionBtn,"click",e=>{e.stopPropagation(),this._toggleMenu("caption")}),this._listen(document,"click",()=>this._closeAllMenus()),this._listen(this.container,"click",e=>e.stopPropagation())}_detachDOMEvents(){this._domListeners.forEach(({target:e,type:t,handler:i,options:s})=>{e.removeEventListener(t,i,s)}),this._domListeners=[]}_listen(e,t,i,s){e.addEventListener(t,i,s),this._domListeners.push({target:e,type:t,handler:i,options:s})}_attachPlayerEvents(){let e=dashjs.MediaPlayer.events;this._listenPlayer(e.PLAYBACK_STARTED,()=>this._onPlaybackStarted()),this._listenPlayer(e.PLAYBACK_PAUSED,()=>this._onPlaybackPaused()),this._listenPlayer(e.PLAYBACK_TIME_UPDATED,t=>this._onTimeUpdate(t)),this._listenPlayer(e.STREAM_ACTIVATED,()=>this._onStreamActivated()),this._listenPlayer(e.STREAM_TEARDOWN_COMPLETE,()=>this._onStreamTeardown()),this._listenPlayer(e.BUFFER_LEVEL_UPDATED,t=>this._onBufferLevelUpdated(t)),this._listenPlayer(e.TEXT_TRACKS_ADDED,t=>this._onTextTracksAdded(t)),dashjs.Protection&&dashjs.Protection.events&&this._listenPlayer(dashjs.Protection.events.KEY_STATUSES_MAP_UPDATED,()=>this._rebuildBitrateMenu())}_detachPlayerEvents(){this._playerListeners.forEach(({event:e,handler:t})=>this.player.off(e,t)),this._playerListeners=[]}_listenPlayer(e,t){this.player.on(e,t),this._playerListeners.push({event:e,handler:t})}_togglePlayPause(){this._enabled&&(this.player.isPaused()?this.player.play():this.player.pause())}_updatePlayPauseIcon(){if(this.playPauseIcon)try{let e=this.player.isPaused();this.playPauseIcon.className=e?"bi bi-play-fill":"bi bi-pause-fill"}catch(e){this.playPauseIcon.className="bi bi-play-fill"}}_onPlaybackStarted(){this._updatePlayPauseIcon(),this._startHideTimer()}_onPlaybackPaused(){this._updatePlayPauseIcon(),this._showControlBar(),this._clearHideTimer()}_onTimeUpdate(){if(!this._seeking)try{let e=this._vodOffset+this._sessionTime(),t=this._vodDuration||this.player.duration();if(this._duration=t,this._isDynamic=this.player.isDynamic()&&!this._vodDuration,this._isDynamic){let s=this.player.getCurrentLiveLatency()||0;this.timeDisplay.textContent=`-${m(Math.round(s))}`,this.durationDisplay.innerHTML='<i class="bi bi-circle-fill"></i> LIVE',this.durationDisplay.classList.add("cb-live-indicator"),this.timeSeparator&&this.timeSeparator.classList.add("cb-hidden-element");let a=this.player.getTargetLiveDelay()||0,l=s<=a+1;this.durationDisplay.classList.toggle("cb-at-live-edge",l)}else this.timeDisplay.textContent=m(e),this.durationDisplay.textContent=m(t),this.durationDisplay.classList.remove("cb-live-indicator","cb-at-live-edge"),this.timeSeparator&&this.timeSeparator.classList.remove("cb-hidden-element");if(t>0){let s=e/t*100;this.seekbarPlayed.style.width=`${Math.min(s,100)}%`}let i=this.player.getPlaybackRate();i!=null&&this._updateRateDisplay(i)}catch(e){}}_seekToLiveEdge(){if(!(!this._enabled||!this._isDynamic))try{this.player.seekToOriginalLive()}catch(e){try{this.player.seek(this.player.duration())}catch(t){}}}_changeRate(e){if(this._enabled)try{let t=this.player.getPlaybackRate()||1,i=Math.min(4,Math.max(.25,Math.round((t+e)*4)/4));this.player.setPlaybackRate(i),this._updateRateDisplay(i)}catch(t){}}_resetRate(){if(this._enabled)try{this.player.setPlaybackRate(1),this._updateRateDisplay(1)}catch(e){}}_updateRateDisplay(e){this.rateDisplay&&(this.rateDisplay.textContent=`${e.toFixed(2)}x`)}_getSeekTime(e){let t=this.seekbarContainer.getBoundingClientRect(),i=(e-t.left)/t.width;return i=Math.max(0,Math.min(1,i)),i*(this._duration||0)}_currentAbsoluteTime(){return this._vodOffset+this._sessionTime()}_sessionTime(){let e=Number(this.video.currentTime);return Number.isFinite(e)&&e>0?e:0}_requestRelativeSeek(e){this._requestSeek(this._currentAbsoluteTime()+e)}_requestSeek(e){let t=this._vodDuration||this.player.duration(),i=Math.max(0,Math.min(e,Math.max(0,t-.1)));this._seekHandler?this._seekHandler(i):this.player.seek(Math.max(0,i-this._vodOffset))}_onSeekMouseDown(e){this._enabled&&(this._seeking=!0,e.preventDefault())}_onDocumentMouseMove(e){if(!this._seeking)return;let t=this._getSeekTime(e.clientX),i=this._duration>0?t/this._duration*100:0;this.seekbarPlayed.style.width=`${i}%`,this.timeDisplay.textContent=m(t)}_onDocumentMouseUp(e){if(!this._seeking)return;this._seeking=!1;let t=this._getSeekTime(e.clientX);this._requestSeek(t)}_onSeekMouseMove(e){if(!this._enabled||!this._duration)return;let t=this._getSeekTime(e.clientX);this._showThumbnail(e.clientX,t)}_onSeekMouseLeave(){this._hideThumbnail()}_onSeekTouchStart(e){this._enabled&&(this._seeking=!0,e.preventDefault())}_onSeekTouchMove(e){if(!this._seeking||!e.touches[0])return;e.preventDefault();let t=this._getSeekTime(e.touches[0].clientX),i=this._duration>0?t/this._duration*100:0;this.seekbarPlayed.style.width=`${i}%`,this.timeDisplay.textContent=m(t)}_onSeekTouchEnd(e){if(this._seeking&&(this._seeking=!1,e.changedTouches&&e.changedTouches[0])){let t=this._getSeekTime(e.changedTouches[0].clientX);this._requestSeek(t)}}_showThumbnail(e,t){this.player.provideThumbnail&&this.player.provideThumbnail(t,i=>{if(!i||!i.url){this._hideThumbnail();return}let s=this.seekbarContainer.getBoundingClientRect(),l=this.wrapper.getBoundingClientRect().height*.15,r=Math.min(l/i.height,2),o=i.width*r,u=i.height*r;this.thumbnailElem.style.width=`${i.width}px`,this.thumbnailElem.style.height=`${i.height}px`,this.thumbnailElem.style.background=`url("${i.url}") -${i.x}px -${i.y}px`,this.thumbnailElem.style.backgroundSize="",this.thumbnailElem.style.transform=`scale(${r})`;let c=e-s.left-o/2;c=Math.max(0,Math.min(c,s.width-o)),this.thumbnailContainer.style.left=`${c}px`,this.thumbnailContainer.style.bottom=`${s.height+10}px`,this.thumbnailTimeLabel.textContent=m(t),this.thumbnailContainer.classList.remove("cb-hidden-element")})}_hideThumbnail(){this.thumbnailContainer&&this.thumbnailContainer.classList.add("cb-hidden-element")}_onBufferLevelUpdated(e){if(!(!e||e.mediaType!=="video"||!this._duration||this._isDynamic))try{let i=this.player.getDashMetrics().getCurrentBufferLevel("video",!0)||0,l=(this._vodOffset+this._sessionTime()+i)/this._duration*100;this.seekbarBuffer.style.width=`${Math.min(l,100)}%`}catch(t){}}_onVolumeInput(){let e=parseFloat(this.volumeSlider.value);try{this.player.setVolume(e),this.player.setMute(e===0)}catch(t){}this._updateMuteIcon()}_toggleMute(){try{this.player.isMuted()?(this.player.setMute(!1),this.player.setVolume(this._lastVolume||1),this.volumeSlider.value=this._lastVolume||1):(this._lastVolume=this.player.getVolume(),this.player.setMute(!0),this.volumeSlider.value=0)}catch(e){}this._updateMuteIcon()}_updateMuteIcon(){try{let e=this.player.isMuted()||parseFloat(this.volumeSlider.value)===0;this.muteIcon.className=e?"bi bi-volume-mute-fill":"bi bi-volume-up-fill"}catch(e){this.muteIcon.className="bi bi-volume-up-fill"}}_toggleFullscreen(){!document.fullscreenElement&&!document.webkitFullscreenElement?this.wrapper.requestFullscreen?this.wrapper.requestFullscreen():this.wrapper.webkitRequestFullscreen&&this.wrapper.webkitRequestFullscreen():document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()}_onFullscreenChangeBound(){this._isFullscreen=!!(document.fullscreenElement||document.webkitFullscreenElement),this.fullscreenIcon.className=this._isFullscreen?"bi bi-fullscreen-exit":"bi bi-fullscreen",this.wrapper.classList.toggle("cb-fullscreen",this._isFullscreen)}_onMouseMoveBound(){this._showControlBar(),this._startHideTimer()}_onMouseLeaveBound(){try{this.player.isPaused()||this._startHideTimer()}catch(e){}}_showControlBar(){this.container.classList.remove("cb-hidden"),this._setCloseButtonHidden(!1),this.wrapper.style.cursor=""}_hideControlBar(){try{if(this.player.isPaused()||this._seeking||this._activeMenu)return}catch(e){return}this.container.classList.add("cb-hidden"),this._setCloseButtonHidden(!0),this.wrapper.style.cursor="none"}_setCloseButtonHidden(e){let t=this.wrapper.closest(".player"),i=t&&t.querySelector(".player-close"),s=t&&t.querySelector(".player-title");i&&i.classList.toggle("player-close-hidden",e),s&&s.classList.toggle("player-title-hidden",e)}_startHideTimer(){this._clearHideTimer();try{if(this.player.isPaused())return}catch(e){return}this._hideTimer=setTimeout(()=>this._hideControlBar(),3e3)}_clearHideTimer(){this._hideTimer&&(clearTimeout(this._hideTimer),this._hideTimer=null)}_onStreamActivated(){this._rebuildBitrateMenu(),this._rebuildTrackMenu(),this._rebuildCaptionMenu();try{this._duration=this._vodDuration||this.player.duration(),this._isDynamic=this.player.isDynamic()&&!this._vodDuration}catch(e){}}_onStreamTeardown(){this.reset()}_onTextTracksAdded(){this._rebuildCaptionMenu()}_toggleMenu(e){let t=this._getMenuElement(e);t&&(this._activeMenu===e?this._closeAllMenus():(this._closeAllMenus(),t.classList.remove("cb-hidden-element"),this._activeMenu=e))}_closeAllMenus(){for(let e of["bitrate","track","caption"]){let t=this._getMenuElement(e);t&&t.classList.add("cb-hidden-element")}this._activeMenu=null}_getMenuElement(e){switch(e){case"bitrate":return this.bitrateMenu;case"track":return this.trackMenu;case"caption":return this.captionMenu}return null}_destroyMenus(){this.bitrateMenu&&(this.bitrateMenu.innerHTML=""),this.trackMenu&&(this.trackMenu.innerHTML=""),this.captionMenu&&(this.captionMenu.innerHTML="")}_rebuildBitrateMenu(){var t,i,s;if(!this.bitrateMenu)return;this.bitrateMenu.innerHTML="";let e=!1;for(let a of["video","audio"])try{let l=this.player.getRepresentationsByType(a);if(!l||l.length<1)continue;e=!0;let r=n("div",{className:"cb-menu-title"},a.charAt(0).toUpperCase()+a.slice(1));this.bitrateMenu.appendChild(r);let o=n("div",{className:"cb-menu-item cb-menu-item-selected",textContent:"Auto",onClick:()=>{this.player.updateSettings({streaming:{abr:{autoSwitchBitrate:{[a]:!0}}}}),this._rebuildBitrateMenu()}});this.bitrateMenu.appendChild(o);let u=this.player.getSettings(),c=((s=(i=(t=u==null?void 0:u.streaming)==null?void 0:t.abr)==null?void 0:i.autoSwitchBitrate)==null?void 0:s[a])!==!1,b=this.player.getCurrentRepresentationForType(a);l.forEach((d,y)=>{let f=`${Math.round(d.bandwidth/1e3)} kbps`;d.width&&d.height&&(f+=` (${d.width}x${d.height})`);let v=!c&&b&&b.id===d.id,k=n("div",{className:`cb-menu-item ${v?"cb-menu-item-selected":""}`,textContent:f,onClick:()=>{this.player.updateSettings({streaming:{abr:{autoSwitchBitrate:{[a]:!1}}}}),this.player.setRepresentationForTypeByIndex(a,y,!1),this._rebuildBitrateMenu()}});this.bitrateMenu.appendChild(k)}),c||o.classList.remove("cb-menu-item-selected")}catch(l){}this.bitrateBtn&&this.bitrateBtn.classList.toggle("cb-hidden-element",!e)}_rebuildTrackMenu(){if(!this.trackMenu)return;this.trackMenu.innerHTML="";let e=!1;for(let t of["audio","video"])try{let i=this.player.getTracksFor(t);if(!i||i.length<1)continue;e=!0;let s=n("div",{className:"cb-menu-title"},t.charAt(0).toUpperCase()+t.slice(1));this.trackMenu.appendChild(s);let a=this.player.getCurrentTrackFor(t);i.forEach(l=>{let r="";if(l.labels&&l.labels.length>0){let c=l.labels.find(b=>b.text)||l.labels[0];c&&c.text&&(r=c.text)}r||(r=l.lang||t.charAt(0).toUpperCase()+t.slice(1));let o=a&&this._isTracksEqual(a,l),u=n("div",{className:`cb-menu-item ${o?"cb-menu-item-selected":""}`,textContent:r,onClick:()=>{this.player.setCurrentTrack(l),this._notifyTrackSelected(t,l),this._rebuildTrackMenu()}});this.trackMenu.appendChild(u)})}catch(i){}this.trackBtn&&this.trackBtn.classList.toggle("cb-hidden-element",!e)}_isTracksEqual(e,t){try{return!e||!t?!1:e.id===t.id&&e.lang===t.lang&&e.viewpoint===t.viewpoint&&String(e.roles||"")===String(t.roles||"")&&String(e.accessibility||"")===String(t.accessibility||"")&&String(e.audioChannelConfiguration||"")===String(t.audioChannelConfiguration||"")}catch(i){return!1}}_formatChannels(e){if(!e.audioChannelConfiguration||!e.audioChannelConfiguration.length)return null;let t=e.audioChannelConfiguration[0].value;switch(t){case"1":return"mono";case"2":return"stereo";case"6":return"5.1";case"8":return"7.1";default:return t?`${t}ch`:null}}_rebuildCaptionMenu(){if(this.captionMenu){this.captionMenu.innerHTML="";try{let e=this.player.getTracksFor("text");if(!e||e.length===0){this._rebuildNativeCaptionMenu();return}let t=this.player.getCurrentTextTrackIndex(),i=n("div",{className:`cb-menu-item ${t===-1?"cb-menu-item-selected":""}`,textContent:"Off",onClick:()=>{this.player.setTextTrack(-1),this._notifyTrackSelected("text",null),this._rebuildCaptionMenu()}});this.captionMenu.appendChild(i);for(let s=0;s<e.length;s++){let a=e[s],l="";if(a.labels&&a.labels.length>0){let u=a.labels.find(c=>c.text);u&&(l=u.text)}l||(l=a.lang||"Und");let o=n("div",{className:`cb-menu-item ${t===s?"cb-menu-item-selected":""}`,textContent:l,onClick:()=>{this.player.setTextTrack(s),this._notifyTrackSelected("text",a),this._rebuildCaptionMenu()}});this.captionMenu.appendChild(o)}this.captionBtn&&this.captionBtn.classList.toggle("cb-hidden-element",e.length===0)}catch(e){this.captionBtn&&this.captionBtn.classList.add("cb-hidden-element")}}}_rebuildNativeCaptionMenu(){var s,a;let e=Array.from(this.video.textTracks||[]);if(!e.length){(s=this.captionBtn)==null||s.classList.add("cb-hidden-element");return}let t=e.findIndex(l=>l.mode==="showing"),i=l=>{e.forEach((r,o)=>{r.mode=o===l?"showing":"disabled"}),this._notifyTrackSelected("nativeText",l>=0?e[l]:null),this._rebuildCaptionMenu()};this.captionMenu.appendChild(n("div",{className:`cb-menu-item ${t===-1?"cb-menu-item-selected":""}`,textContent:"Off",onClick:()=>i(-1)})),e.forEach((l,r)=>{this.captionMenu.appendChild(n("div",{className:`cb-menu-item ${t===r?"cb-menu-item-selected":""}`,textContent:l.label||l.language||`Subtitle ${r+1}`,onClick:()=>i(r)}))}),(a=this.captionBtn)==null||a.classList.remove("cb-hidden-element")}};return S(D);})();