')+'
')+(chapter?dom.htmlEncode(chapter.Name):" ")+"
",bubbleElement&&(html=(html+=thumbnailSet?'
':'
')+datetime.getDisplayRunningTime(positionTicks)+"
"),html+="
"}function getCurrentItemThumbnailsPromise(instance,itemId,mediaSourceId,apiClient,maxThumbnailWidth){return instance.currentItemThumbnailsPromise||(apiClient=apiClient.getThumbnails(itemId,{MediaSourceId:mediaSourceId,Width:maxThumbnailWidth}).then(function(result){return instance.currentItemThumbnails=result,Promise.resolve(result)},function(){instance.currentItemThumbnailsPromise=null}),instance.currentItemThumbnailsPromise=apiClient)}function refreshThumbnailsIfNeeded(instance,item,mediaSourceId,apiClient,maxThumbnailWidth){!item.Id||"Audio"===item.MediaType||instance.currentItemThumbnails||instance.currentItemThumbnailsPromise||getCurrentItemThumbnailsPromise(instance,item.Id,mediaSourceId,apiClient,maxThumbnailWidth)}OsdController.prototype.updatePlayerState=function(event,player,state){var nowPlayingPositionSlider=this.options.nowPlayingPositionSlider,isProgressClear=(updatePositionSliderDisabled(this,state),state.MediaSource&&null==state.MediaSource.RunTimeTicks);nowPlayingPositionSlider.setIsClear(isProgressClear),state.MediaSource?.WallClockStart&&(nowPlayingPositionSlider=datetime.parseISO8601Date(state.MediaSource.WallClockStart),console.log("wall clock start: "+nowPlayingPositionSlider),this.wallClockStartTimeMs=nowPlayingPositionSlider.getTime(),this.visualStartDateMs=Math.min(this.visualStartDateMs||this.wallClockStartTimeMs,this.wallClockStartTimeMs||this.visualStartDateMs)),this.updateNowPlayingInfo(event,player,state)},OsdController.prototype.updateNowPlayingInfo=function(event,player,state){this.currentItemThumbnailsPromise=null,this.currentItemThumbnails=null;var item=state.NowPlayingItem,options=(this.currentItem=item,this.options),options=options.nowPlayingPositionSlider;if(item){this.currentMediaSource=state.MediaSource,this.enableProgressByTimeOfDay=shouldEnableProgressByTimeOfDay(item,state.MediaSource),options.setForceDisplayThumb(this.enableProgressByTimeOfDay),this.enableProgressByTimeOfDay?options.getTrackBackgroundUpper().classList.add("emby-slider-background-upper-accent"):options.getTrackBackgroundUpper().classList.remove("emby-slider-background-upper-accent");let instance=this;getDisplayItem(item,this.currentDisplayItem).then(function(itemInfo){var item=itemInfo.originalItem,itemInfo=(instance.currentItem=item,itemInfo.displayItem||item);instance.currentDisplayItem=itemInfo,events.trigger(instance,"displayitemupdated",[item,itemInfo,state]),instance.updateDisplayItem(state,item,itemInfo)})}else options.disabled=!0,this.enableProgressByTimeOfDay=!1,this.currentChapters=null,this.currentDisplayChapters=null,this.currentDisplayItem=null,this.currentMediaSource=null,events.trigger(this,"displayitemupdated",[item,null,state])},OsdController.prototype.updateDisplayItem=function(state,item,displayItem){this.currentChapters=item.Chapters||displayItem.Chapters||[],initChapterList(this.currentChapters,this.currentDisplayItem,this.currentMediaSource),this.currentDisplayChapters=getChaptersForDisplay(this.currentChapters),this.currentItemThumbnailsPromise=null,this.currentItemThumbnails=null,updatePositionSliderDisabled(this,state),this.enableProgressByTimeOfDay?(item=displayItem.StartDate?datetime.parseISO8601Date(displayItem.StartDate).getTime():0,this.visualStartDateMs=Math.min(item||this.wallClockStartTimeMs,this.wallClockStartTimeMs||item),this.visualEndDateMs=displayItem.EndDate?datetime.parseISO8601Date(displayItem.EndDate).getTime():0):(this.visualStartDateMs=0,this.visualEndDateMs=0)},OsdController.prototype.onPlayerTimeUpdate=function(positionTicks,runtimeTicks,seekableRanges){var wallClockStartTimeMs,visualEndDateMs,currentTimeMs,visualStartDateMs,seekRuntimeMs,options=this.options,nowPlayingPositionSlider=options.nowPlayingPositionSlider,enableProgressByTimeOfDay=this.enableProgressByTimeOfDay,positionTextElem=options.positionTextElem,options=options.durationTextElem;enableProgressByTimeOfDay?nowPlayingPositionSlider&&!nowPlayingPositionSlider.dragging&&(wallClockStartTimeMs=this.wallClockStartTimeMs,visualStartDateMs=this.visualStartDateMs,visualEndDateMs=this.visualEndDateMs,(visualStartDateMs=visualStartDateMs)&&visualEndDateMs?(currentTimeMs=wallClockStartTimeMs+(positionTicks||0)/1e4,seekRuntimeMs=visualEndDateMs-visualStartDateMs,setDisplayTime(positionTextElem,visualStartDateMs),options&&setDisplayTime(options,visualEndDateMs),this.nowPlayingSliderRunTimeTicks=1e4*seekRuntimeMs,nowPlayingPositionSlider.step=getStep(this.nowPlayingSliderRunTimeTicks),this.nowPlayingSliderValue=getDisplayPercentByTimeOfDay(visualStartDateMs,seekRuntimeMs,currentTimeMs),nowPlayingPositionSlider.setValue(this.nowPlayingSliderValue),seekableRanges.length?(visualEndDateMs=getDisplayPercentByTimeOfDay(visualStartDateMs,seekRuntimeMs,wallClockStartTimeMs+(seekableRanges[0].start||0)/1e4),currentTimeMs=getDisplayPercentByTimeOfDay(visualStartDateMs,seekRuntimeMs,wallClockStartTimeMs+(seekableRanges[0].end||0)/1e4),nowPlayingPositionSlider.setSeekRanges([{start:visualEndDateMs,end:currentTimeMs}])):nowPlayingPositionSlider.setSeekRanges([])):(nowPlayingPositionSlider.step=.01,this.nowPlayingSliderRunTimeTicks=null,this.nowPlayingSliderValue=0,nowPlayingPositionSlider.setValue(0),nowPlayingPositionSlider.setSeekRanges([]))):(this.nowPlayingSliderRunTimeTicks=runtimeTicks,nowPlayingPositionSlider&&!nowPlayingPositionSlider.dragging&&(runtimeTicks?(visualStartDateMs=positionTicks/runtimeTicks,visualStartDateMs*=100,nowPlayingPositionSlider.step=getStep(runtimeTicks),this.nowPlayingSliderValue=visualStartDateMs,nowPlayingPositionSlider.setValue(visualStartDateMs),options&&(!(seekRuntimeMs=this.currentMediaSource)||seekRuntimeMs.RunTimeTicks?updateDurationText(options,enableProgressByTimeOfDay,runtimeTicks-positionTicks,this.currentDisplayItem,!0):updateDurationText(options,enableProgressByTimeOfDay,runtimeTicks,this.currentDisplayItem,!1))):(nowPlayingPositionSlider.step=.01,this.nowPlayingSliderValue=0,nowPlayingPositionSlider.setValue(0),options&&updateDurationText(options,enableProgressByTimeOfDay,runtimeTicks,this.currentDisplayItem))),nowPlayingPositionSlider&&nowPlayingPositionSlider.setSeekRanges([]),nowPlayingPositionSlider?.dragging&&runtimeTicks||updateTimeText(this,positionTextElem,positionTicks))},OsdController.prototype.getPositionBubbleHtml=function(value,currentRuntimeTicks){var enableProgressByTimeOfDay=this.enableProgressByTimeOfDay;if(enableProgressByTimeOfDay)return(startDateMs=this.visualStartDateMs)&&this.visualEndDateMs?(ms=this.visualEndDateMs-startDateMs,ms=(ms/=100)*value+startDateMs,'
'+getDisplayTimeWithoutAmPm(new Date(parseInt(ms)),!0)+"
"):"--:--";if(!currentRuntimeTicks)return"--:--";var startDateMs=currentRuntimeTicks,ms=(startDateMs=startDateMs/100*value,this.currentItem);if(ms&&this.options.enableSeekThumbnails){var currentRuntimeTicks=connectionManager.getApiClient(ms.ServerId),value=this.currentMediaSource.Id,thumbnails=(refreshThumbnailsIfNeeded(this,ms,value,currentRuntimeTicks,400),this.currentItemThumbnails),chapters=this.currentDisplayChapters||[],nowPlayingPositionSlider=this.options.nowPlayingPositionSlider;if(chapters.length){nowPlayingPositionSlider=getThumbnailBubbleHtml(nowPlayingPositionSlider,enableProgressByTimeOfDay,currentRuntimeTicks,ms.Id,value,thumbnails,chapters,startDateMs,400);if(nowPlayingPositionSlider)return nowPlayingPositionSlider}}return'
'+datetime.getDisplayRunningTime(startDateMs)+"
"},OsdController.prototype.onPlaybackStart=function(e,state){cancelPositionSliderEditing(this)},OsdController.prototype.onPlaybackStopped=function(e,state){cancelPositionSliderEditing(this)},OsdController.prototype.bindToPlayer=function(player){this.currentPlayer=player},OsdController.prototype.releaseCurrentPlayer=function(){cancelPositionSliderEditing(this),this.currentPlayer=null},OsdController.prototype.destroy=function(){this.releaseCurrentPlayer(),this.currentItemThumbnailsPromise=null,this.currentItemThumbnails=null,this.currentChapters=null,this.currentDisplayChapters=null,this.currentItem=null,this.currentDisplayItem=null,this.currentMediaSource=null,this.options=null};export default OsdController;