define(["./../common/playback/playbackmanager.js","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../common/globalize.js","./../layoutmanager.js","./../dom.js","./../common/itemmanager/itemmanager.js","./../shortcuts.js","./../mediainfo/mediainfo.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/userdatabuttons/emby-ratingbutton.js","./../common/inputmanager.js","./../focusmanager.js","./../common/appsettings.js","./../playback/osdcontroller.js"],function(_playbackmanager,_connectionmanager,_events,_globalize,_layoutmanager,_dom,_itemmanager,_shortcuts,_mediainfo,_paperIconButtonLight,_embyRatingbutton,_inputmanager,_focusmanager,_appsettings,_osdcontroller){var currentPlayer,osdController,nowPlayingImageElement,nowPlayingTextElement,nowPlayingBarTVTextElement,nowPlayingBarFavoriteButton,muteButton,volumeSlider,volumeSliderContainer,playPauseButtons,positionSlider,toggleRepeatButton,toggleShuffleButton,remoteControlButton,stopButtonRight,isEnabled,appFooter,currentMode,currentPlayerSupportedCommands=[],lastUpdateTime=0,currentRuntimeTicks=0,isVisibilityAllowed=!0,headerElement=document.querySelector(".skinHeader");function onSlideDownComplete(e){var elem=e.currentTarget;elem===e.target&&elem.classList.contains("nowPlayingBar-hidden")&&elem.classList.add("hide")}function onInputCommand(e){"up"===e.detail.command&&_focusmanager.default.focus(nowPlayingBarTVTextElement)}function slideUp(elem){elem._visible||(elem._visible=!0,"tv"===currentMode?(elem.classList.remove("nowPlayingBar-hidden","hide"),headerElement.classList.add("skinHeader-withnowplaying"),document.documentElement.classList.add("withheadernowplaying"),_inputmanager.default.off(headerElement,onInputCommand),_inputmanager.default.on(headerElement,onInputCommand)):(elem.classList.remove("hide"),elem.offsetWidth,elem.classList.remove("nowPlayingBar-hidden")))}function onPlayPauseClick(){_playbackmanager.default.playPause(currentPlayer)}function onStopClick(){currentPlayer&&_playbackmanager.default.stop(currentPlayer)}var nowPlayingBarElement,currentImgUrl,dragCounter=0;function onDragEnter(e){e.dataTransfer.dropEffect="copy";e=window.CurrentDragInfo,e=e?e.item:null;e&&_playbackmanager.default.canQueue(e)&&(this.classList.add("nowPlayingBar-dragging-over"),dragCounter++)}function onDragOver(e){e.dataTransfer.dropEffect="copy";var data=window.CurrentDragInfo,data=data?data.item:null;data&&_playbackmanager.default.canQueue(data)&&e.preventDefault()}function onDragLeave(e){var data=window.CurrentDragInfo,data=data?data.item:null;data&&_playbackmanager.default.canQueue(data)&&0===--dragCounter&&this.classList.remove("nowPlayingBar-dragging-over")}function onDragEnd(e){this.classList.remove("nowPlayingBar-dragging-over")}function onDrop(e){dragCounter=0,e.preventDefault(),this.classList.remove("nowPlayingBar-dragging-over");var options,e=(null==(e=window.CurrentDragInfo)?void 0:e.items)||[];e.length&&(e=e.filter(function(i){return _playbackmanager.default.canQueue(i)})).length&&(_playbackmanager.default.queue({items:e}),options={text:_globalize.default.translate("HeaderAddedToPlayQueue"),icon:""},Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)}))}function showRemoteControl(){Emby.importModule("./modules/approuter.js").then(function(appRouter){appRouter.showNowPlaying()})}function getNowPlayingBar(){var parentModule;return nowPlayingBarElement?Promise.resolve(nowPlayingBarElement):(parentModule="tv"===(currentMode=_layoutmanager.default.tv?"tv":null)?"./modules/appheader/appheader.js":"./modules/appfooter/appfooter.js",Promise.all([Emby.importModule("./modules/emby-elements/emby-slider/emby-slider.js"),Emby.importModule(parentModule),require(["css!modules/nowplayingbar/nowplayingbar.css","css!!tv|modules/nowplayingbar/nontv.css","css!tv|modules/nowplayingbar/tv.css"])]).then(function(responses){appFooter=responses[1];responses="tv"===currentMode?headerElement:appFooter.element;if(!(nowPlayingBarElement=responses.querySelector(".nowPlayingBar"))){responses.insertAdjacentHTML("afterbegin",(className=html="",html+='
',"tv"!==currentMode&&(html+='
'),html=(html=(html=(html=(html=(html=(html=(html=(html=(html+='
')+'
')+("tv"===currentMode?'
':'
')+'
')+'
')+'
'+("tv"===currentMode?'
':'
'))+'
')+'
')+'
',className="toggleButtonIcon",_dom.default.allowBackdropFilter()&&(className+=" toggleButtonIcon-backdropfilter"),html=(html=(html=(html=(html+='
')+'
')+'
')+'
')+"
",html="tv"!==currentMode?(html+='
')+'
'+_globalize.default.translate("HeaderAddToPlayQueue")+"
":html)),nowPlayingBarElement=responses.querySelector(".nowPlayingBar"),_shortcuts.default.on(nowPlayingBarElement);var html,className=nowPlayingBarElement;_events.default.on(_layoutmanager.default,"modechange",onLayoutModeChange),"tv"!==currentMode&&_dom.default.addEventListener(className,_dom.default.whichTransitionEvent(),onSlideDownComplete,{passive:!0}),nowPlayingImageElement=className.querySelector(".nowPlayingBarImage"),nowPlayingTextElement=className.querySelector(".nowPlayingBarText"),nowPlayingBarTVTextElement=className.querySelector(".nowPlayingBarTVText"),nowPlayingBarFavoriteButton=className.querySelector(".nowPlayingBarFavoriteButton"),positionSlider=className.querySelector(".nowPlayingBarPositionSlider"),osdController=new _osdcontroller.default({nowPlayingPositionSlider:positionSlider,positionTextElem:className.querySelector(".nowPlayingBarCurrentTime"),durationTextElem:null,enableSeekThumbnails:!1,parentElement:className}),_events.default.on(osdController,"displayitemupdated",onDisplayItemUpdated),osdController.bindToPlayer(currentPlayer),(muteButton=className.querySelector(".muteButton")).addEventListener("click",function(){currentPlayer&&_playbackmanager.default.toggleMute(currentPlayer)}),stopButtonRight=className.querySelector(".stopButton-right");for(var stopButtons=className.querySelectorAll(".stopButton"),i=0,length=stopButtons.length;i
')+text+'')+text+"
":(addComma+='')+text+"
"}function getNowPlayingNames(nowPlayingItem,includeNonNameInfo,enableTextLinks){var topText=nowPlayingItem.Name,topText=nowPlayingItem.AlbumId&&"Audio"===nowPlayingItem.MediaType?getTextActionButton({Id:nowPlayingItem.AlbumId,Name:nowPlayingItem.Album,Type:"MusicAlbum",IsFolder:!0,ServerId:nowPlayingItem.ServerId},topText,null,enableTextLinks):_itemmanager.default.getDisplayName(nowPlayingItem,{})||nowPlayingItem.Name,bottomText="",includeNonNameInfo=(nowPlayingItem.ArtistItems&&nowPlayingItem.ArtistItems.length?bottomText=nowPlayingItem.ArtistItems.map(function(a,index){return getTextActionButton({Id:a.Id,Name:a.Name,Type:"MusicArtist",IsFolder:!0,ServerId:nowPlayingItem.ServerId},null,null,enableTextLinks,index'+topText+" "),bottomText&&includeNonNameInfo.push(''+bottomText+"
")):(includeNonNameInfo.push(''+topText+"
"),bottomText&&includeNonNameInfo.push(''+bottomText+"
")),includeNonNameInfo}function onDisplayItemUpdated(e,item,displayItem,state){var textLines=displayItem?getNowPlayingNames(displayItem,null,!0):[],textLines=(nowPlayingTextElement.innerHTML=textLines.join(""),nowPlayingBarTVTextElement.innerHTML=(displayItem?getNowPlayingNames(displayItem):[]).join(' -
'),displayItem?function(item,options){if(item)return"Episode"!==item.Type?null:((options=options||{}).type=options.type||"Primary","Primary"===options.type&&item.SeriesPrimaryImageTag?(options.tag=item.SeriesPrimaryImageTag,{url:_connectionmanager.default.getApiClient(item).getImageUrl(item.SeriesId,options),aspect:"2/3"}):"Thumb"===options.type&&item.ParentThumbImageTag?(options.tag=item.ParentThumbImageTag,{url:_connectionmanager.default.getApiClient(item).getImageUrl(item.ParentThumbItemId,options),aspect:"16/9"}):null);throw new Error("item cannot be null!")}(displayItem,{height:70})||function(item,options){if(!item)throw new Error("item cannot be null!");(options=options||{}).type=options.type||"Primary";var imageTags=item.ImageTags||{};return options.tag=item.PrimaryImageTag||imageTags[options.type],options.tag?{url:_connectionmanager.default.getApiClient(item).getImageUrl(item.PrimaryImageItemId||item.Id||item.ItemId,options),aspect:item.PrimaryImageAspectRatio?item.PrimaryImageAspectRatio.toString():"1"}:item.AlbumId&&item.AlbumPrimaryImageTag?(options.tag=item.AlbumPrimaryImageTag,{url:_connectionmanager.default.getApiClient(item).getImageUrl(item.AlbumId,options),aspect:"1"}):null}(displayItem,{height:70}):null),url=textLines?textLines.url:null;url!==currentImgUrl&&((currentImgUrl=url)?(nowPlayingImageElement.style["aspect-ratio"]=textLines.aspect,nowPlayingImageElement.style.backgroundImage="url('"+url+"')",nowPlayingImageElement.classList.remove("defaultCardBackground"),nowPlayingImageElement.innerHTML=""):(nowPlayingImageElement.style.backgroundImage="",nowPlayingImageElement.style["aspect-ratio"]="1",nowPlayingImageElement.classList.add("defaultCardBackground"),nowPlayingImageElement.innerHTML=''+_itemmanager.default.getDefaultIcon(displayItem)+"")),displayItem&&_itemmanager.default.canRate(item)?(nowPlayingBarFavoriteButton.setItem(displayItem),nowPlayingBarFavoriteButton.classList.remove("hide")):(nowPlayingBarFavoriteButton.classList.add("hide"),nowPlayingBarFavoriteButton.setItem(null))}function onPlaybackStart(e,state){null!=osdController&&osdController.onPlaybackStart(e,this,state),onStateChanged.call(this,e,state)}function onShuffleChange(e){isEnabled&&updateShuffleDisplay(_playbackmanager.default.getShuffle(this))}function onRepeatModeChange(e){isEnabled&&updateRepeatModeDisplay(_playbackmanager.default.getRepeatMode(this))}function hideNowPlayingBar(){isEnabled=!1,nowPlayingBarElement&&function(elem){elem._visible&&(elem._visible=!1,"tv"===currentMode?(_inputmanager.default.off(headerElement,onInputCommand),elem.classList.add("nowPlayingBar-hidden","hide"),headerElement.classList.remove("skinHeader-withnowplaying"),document.documentElement.classList.remove("withheadernowplaying")):(elem.classList.remove("nowPlayingBar-footer-transition"),elem.offsetWidth,elem.classList.add("nowPlayingBar-footer-transition"),elem.offsetWidth,elem.classList.add("nowPlayingBar-hidden")))}(nowPlayingBarElement),"tv"!==currentMode&&appFooter&&appFooter.setWithContent(!1)}function onPlaybackStopped(e,state){null!=osdController&&osdController.onPlaybackStopped(e,state);this.isLocalPlayer?"Audio"!==state.NextMediaType&&"Video"!==state.NextMediaType&&hideNowPlayingBar():state.NextMediaType||hideNowPlayingBar()}function onPlayPauseStateChanged(e){isEnabled&&updatePlayPauseState(this.paused())}function onStateChanged(event,state){var player=this;if(state.IsBackgroundPlayback)hideNowPlayingBar();else if(state.NowPlayingItem){if(player.isLocalPlayer&&state.NowPlayingItem){if("Video"===state.NowPlayingItem.MediaType)if(!_appsettings.default.enableVideoUnderUI())return void hideNowPlayingBar();if("Audio"!==state.NowPlayingItem.MediaType&&"Video"!==state.NowPlayingItem.MediaType)return void hideNowPlayingBar()}isEnabled=!0,nowPlayingBarElement?updatePlayerStateInternal(event,state,player):getNowPlayingBar().then(function(){updatePlayerStateInternal(event,state,player)})}else hideNowPlayingBar()}function onTimeUpdate(e){var now;!isEnabled||(now=Date.now())-lastUpdateTime<700||(lastUpdateTime=now,currentRuntimeTicks=_playbackmanager.default.duration(this),updateTimeDisplay(_playbackmanager.default.currentTime(this),currentRuntimeTicks,_playbackmanager.default.getSeekableRanges(this)))}function onVolumeChanged(e){isEnabled&&updatePlayerVolumeState(this.isMuted(),this.getVolume())}function refreshFromPlayer(player){var state=_playbackmanager.default.getPlayerState(player);onStateChanged.call(player,{type:"init"},state)}function bindToPlayer(player){null!=osdController&&osdController.bindToPlayer(player),player!==currentPlayer&&(function(){null!=osdController&&osdController.releaseCurrentPlayer();var player=currentPlayer;player&&(_events.default.off(player,"playbackstart",onPlaybackStart),_events.default.off(player,"statechange",onPlaybackStart),_events.default.off(player,"repeatmodechange",onRepeatModeChange),_events.default.off(player,"shufflechange",onShuffleChange),_events.default.off(player,"playbackstop",onPlaybackStopped),_events.default.off(player,"volumechange",onVolumeChanged),_events.default.off(player,"pause",onPlayPauseStateChanged),_events.default.off(player,"unpause",onPlayPauseStateChanged),_events.default.off(player,"timeupdate",onTimeUpdate),currentPlayer=null,hideNowPlayingBar())}(),currentPlayer=player)&&(refreshFromPlayer(player),_events.default.on(player,"playbackstart",onPlaybackStart),_events.default.on(player,"statechange",onPlaybackStart),_events.default.on(player,"repeatmodechange",onRepeatModeChange),_events.default.on(player,"shufflechange",onShuffleChange),_events.default.on(player,"playbackstop",onPlaybackStopped),_events.default.on(player,"volumechange",onVolumeChanged),_events.default.on(player,"pause",onPlayPauseStateChanged),_events.default.on(player,"unpause",onPlayPauseStateChanged),_events.default.on(player,"timeupdate",onTimeUpdate))}_events.default.on(_playbackmanager.default,"playerchange",function(e,player){bindToPlayer(player)}),bindToPlayer(_playbackmanager.default.getCurrentPlayer());var viewMediaControlParameters={};function updateVisibilityForView(){!1===viewMediaControlParameters.enableMediaControl||"tv"===currentMode&&!viewMediaControlParameters.enableMediaControlTV?isVisibilityAllowed&&(isVisibilityAllowed=!1,hideNowPlayingBar()):isVisibilityAllowed||(isVisibilityAllowed=!0,currentPlayer?refreshFromPlayer(currentPlayer):hideNowPlayingBar())}document.addEventListener("viewbeforeshow",function(e){var _e$detail$params;"true"!==(null==(_e$detail$params=e.detail.params)?void 0:_e$detail$params.asDialog)&&(e=(_e$detail$params=e.detail).enableMediaControl,_e$detail$params=_e$detail$params.enableMediaControlTV,viewMediaControlParameters={enableMediaControl:e,enableMediaControlTV:_e$detail$params},updateVisibilityForView())})});