Files
lan-play/web/controlbar.min.js
T

2 lines
23 KiB
JavaScript
Raw Normal View History

2026-08-05 12:32:52 +01:00
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.next