dashboard-ui/videoosd/infotab.js
2023-08-31 15:30:17 +02:00

1 line
5.5 KiB
JavaScript

define(["exports","./basetab.js","./../modules/common/itemmanager/itemmanager.js","./../modules/mediainfo/mediainfo.js","./../modules/cardbuilder/cardbuilder.js","./../modules/dom.js","./../modules/common/playback/playbackmanager.js"],function(_exports,_basetab,_itemmanager,_mediainfo,_cardbuilder,_dom,_playbackmanager){function getDetailImageListOptions(items){return{renderer:_cardbuilder.default,options:{overlayText:!0,fields:[],action:"none",multiSelect:!1,ratingButton:!1,playedButton:!1,cardClass:"osdInfoImageCard",cardBoxClass:"osdInfoImageCardBox",cardContentClass:"legacyLazyLoadImmediate",defaultIcon:!0,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,timerIndicator:!1,randomDefaultBackground:!1,staticElement:!0,progress:!1,hoverPlayButton:!1,moreButton:!1,enableUserData:!1},virtualScrollLayout:"vertical-grid"}}function initDetailImage(instance,view){view=view.querySelector(".videoosd-poster");view.fetchData=function(){var item=this.currentOptions.displayItem,items=[];return item&&(item.SeriesPrimaryImageTag&&(item={Id:item.SeriesId,Name:item.SeriesName,ServerId:item.ServerId,ImageTags:{Primary:item.SeriesPrimaryImageTag},IsFolder:!0,PrimaryImageAspectRatio:2/3}),items.push(item)),Promise.resolve({Items:items,TotalRecordCount:items.length})}.bind(instance),view.getListOptions=getDetailImageListOptions,instance.imageItemsContainer=view}function InfoTab(view){_basetab.default.apply(this,arguments),_dom.default.allowBackdropFilter()&&view.classList.add("videoosd-tabBackground-backdropfilter")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(InfoTab.prototype,_basetab.default.prototype),InfoTab.prototype.loadTemplate=function(){var view=this.view;return view.innerHTML='<div is="emby-itemscontainer" class="videoosd-poster flex flex-direction-column justify-content-center flex-shrink-zero">\n </div>\n <div class="videoosd-info flex flex-direction-column justify-content-flex-start flex-grow" style="padding-top:.25em;">\n <h3 class="videoosd-info-title" style="margin:0 0 .25em;">\n </h3>\n <div class="videoosd-info-title2 flex flex-direction-row flex-wrap-wrap hide" style="margin:0 0 .25em;">\n </div>\n <div class="flex flex-direction-row flex-wrap-wrap secondaryText videoosd-info-mediainfoContainer" style="margin:.25em 0;">\n <div class="videoosd-info-mediainfo mediaInfoItems flex flex-direction-row flex-wrap-wrap">\n </div>\n </div>\n <div class="videoosd-info-mediainfo2 mediaInfoItems flex flex-direction-row flex-wrap-wrap" style="margin:.25em 0;">\n </div>\n <div class="videoosd-info-mediasourceInfo mediaInfoItems flex flex-direction-row flex-wrap-wrap secondaryText" style="margin:.25em 0;">\n </div>\n <div class="videoosd-info-overview secondaryText">\n </div>',initDetailImage(this,view),Promise.resolve()},InfoTab.prototype.refreshItem=function(item,mediaSource,currentPlayer){var titleElem=this.view.querySelector(".videoosd-info-title"),title2Elem=this.view.querySelector(".videoosd-info-title2"),seriesName=item.SeriesName||(item.IsSeries||item.EpisodeTitle?item.Name:null);seriesName?(titleElem.innerHTML=seriesName,"Program"===item.Type?title2Elem.classList.add("hide"):(title2Elem.innerHTML=_itemmanager.default.getDisplayName(item,{}),title2Elem.classList.remove("hide"))):(titleElem.innerHTML=_itemmanager.default.getDisplayName(item,{}),title2Elem.classList.add("hide")),this.view.querySelector(".videoosd-info-overview").innerHTML=item.Overview||"",_mediainfo.default.fillPrimaryMediaInfo(this.view.querySelector(".videoosd-info-mediainfo"),item,{endsAt:!1,bitrate:"Audio"===item.MediaType,mediaSource:mediaSource}),_mediainfo.default.fillSecondaryMediaInfo(this.view.querySelector(".videoosd-info-mediainfo2"),item,{mediaSource:mediaSource}),function(instance,mediaSource,currentPlayer){var infos,currentIndex,instance=instance.view.querySelector(".videoosd-info-mediasourceInfo");mediaSource&&(infos=[],(mediaSource=(mediaSource.MediaStreams||[]).filter(function(m){return"Video"===m.Type})[0])&&infos.push('<div class="mediaInfoItem">'+mediaSource.DisplayTitle+"</div>"),mediaSource=_playbackmanager.default.audioTracks(currentPlayer),currentIndex=_playbackmanager.default.getAudioStreamIndex(currentPlayer),(currentPlayer=mediaSource.filter(function(m){return m.Index===currentIndex})[0])&&infos.push('<div class="mediaInfoItem">'+currentPlayer.DisplayTitle+"</div>"),instance.innerHTML=infos.join(""),infos.length)?instance.classList.remove("hide"):instance.classList.add("hide")}(this,mediaSource,currentPlayer)},InfoTab.prototype.onResume=function(options){var instance=this;return _basetab.default.prototype.onResume.apply(this,arguments).then(function(){return options.refresh&&instance.refreshItem(options.displayItem,options.mediaSource),instance.imageItemsContainer.resume(options)})},InfoTab.prototype.onItemUpdated=function(options){_basetab.default.prototype.onItemUpdated.apply(this,arguments),this.paused||this.refreshItem(options.displayItem,options.mediaSource)},InfoTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),this.imageItemsContainer.pause()},InfoTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.endsAtElem=null,this.imageItemsContainer=null},_exports.default=InfoTab});