import loading from"./../modules/loading/loading.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import ApiClient from"./../modules/emby-apiclient/apiclient.js";import events from"./../modules/emby-apiclient/events.js";import globalize from"./../modules/common/globalize.js";import playbackManager from"./../modules/common/playback/playbackmanager.js";import playbackActions from"./../modules/common/playback/playbackactions.js";import appHeader from"./../modules/appheader/appheader.js";import backdrop from"./../modules/backdrop/backdrop.js";import itemHelper from"./../modules/common/itemhelper.js";import dataFormatter from"./../modules/common/dataformatter.js";import itemManager from"./../modules/common/itemmanager/itemmanager.js";import layoutManager from"./../modules/layoutmanager.js";import userSettings from"./../modules/common/usersettings/usersettings.js";import BaseView from"./../modules/viewmanager/baseview.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../modules/emby-elements/emby-tabs/emby-tabs.js";import"./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/sync/emby-downloadbutton.js";import"./../modules/emby-elements/emby-select/emby-select.js";import"./../modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";import listView from"./../modules/listview/listview.js";import cardBuilder from"./../modules/cardbuilder/cardbuilder.js";import itemContextMenu from"./../modules/itemcontextmenu.js";import indicators from"./../modules/indicators/indicators.js";import navDrawer from"./../modules/navdrawer/navdrawer.js";import textEncoding from"./../modules/common/textencoding.js";import dom from"./../modules/dom.js";import appRouter from"./../modules/approuter.js";import datetime from"./../modules/common/datetime.js";import mediaInfo from"./../modules/mediainfo/mediainfo.js";import{appHost}from"./../modules/common/servicelocator.js";import focusManager from"./../modules/focusmanager.js";import imageLoader from"./../modules/common/imagehelper.js";import skinManager from"./../modules/skinmanager.js";import serverNotifications from"./../modules/common/input/api.js";import LinkedItemsView from"./linkeditems.js";require(["flexStyles","css!item/item.css"]);let backdropContainer=document.querySelector(".backdropContainer"),backgroundContainer=document.querySelector(".backgroundContainer"),skinHeader=document.querySelector(".skinHeader"),supportsAsyncDecodedImages=dom.supportsAsyncDecodedImages(),decodingAttribute=supportsAsyncDecodedImages?' decoding="async"':"";function getResponseHelper(){return Emby.importModule("./modules/common/responsehelper.js")}function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}function showConfirm(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function loadMultiSelect(){return layoutManager.tv?Promise.resolve(null):Emby.importModule("./modules/multiselect/multiselect.js")}function renderTrackSelectionsWithoutUser(page,instance,item,forceReload){connectionManager.getApiClient(item.ServerId).getCurrentUser().then(function(user){renderTrackSelections(page,instance,item,user,forceReload)})}function isMediaStreamDisplayed(stream){return"Data"!==stream.Type}function isMediaSourceDisplayed(version,renderAdminFields){for(let i=0,length=version.MediaStreams.length;i':'
',mediaSource.Path&&("Http"!==mediaSource.Protocol||"Trailer"!==item.Type)&&renderAdminFields&&(html+="
"+mediaSource.Path+"
"),html+='
',mediaSource.Container&&(html+=mediaSource.Container.toUpperCase()),mediaSource.Size&&(html+=''+dataFormatter.sizeToString(mediaSource.Size)+"");renderAdminFields=new Date(Date.parse(item.DateCreated));html=(html=(html+=''+globalize.translate("AddedOnValue",datetime.toLocaleDateString(renderAdminFields)+" "+datetime.getDisplayTime(renderAdminFields))+"")+"
"+"
")&&'
'+html+"
",elem.innerHTML=html;let sectionHtml;sectionHtml=scrollX?'
':'
',elem.insertAdjacentHTML("beforeend",sectionHtml),parentElem.appendChild(elem);renderAdminFields=mediaSource.MediaStreams.filter(isMediaStreamDisplayed).map(function(s){return itemHelper.normalizeMediaStreamForDisplay(item,mediaSource,s)});scrollX?cardBuilder.buildCards(renderAdminFields,{shape:"backdrop",overlayText:!0,fields:["MediaStreamInfo"],itemsContainer:elem.querySelector(".itemsContainer"),action:"none",multiSelect:!1,ratingButton:!1,playedButton:!1,defaultIcon:!1,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,timerIndicator:!1,randomDefaultBackground:!1,imageFallback:!1,cardPadderClass:layoutManager.tv?"mediaStreamPadder-tv":"mediaStreamPadder",innerCardFooterClass:"mediaStreamInnerCardFooter",cardTextCssClass:"mediaStreamInnerCardFooter-cardText",enableUserData:!1,draggable:!1,enableFocusScaling:!1,horizontal:!0}):listView.buildItems(renderAdminFields,{image:!1,fields:["MediaStreamInfo"],itemsContainer:elem.querySelector(".itemsContainer"),action:"none",multiSelect:!1,ratingButton:!1,playedButton:!1,defaultIcon:!1,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,timerIndicator:!1,randomDefaultBackground:!1,imageFallback:!1,innerCardFooterClass:"mediaStreamInnerCardFooter",enableUserDataButtons:!1,draggable:!1})}function renderMediaSources(page,renderAdminFields,item,mediaSources){var groupedVersions=mediaSources.filter(function(g){return"Grouping"===g.Type}),parentElem=(renderAdminFields&&groupedVersions.length?page.querySelector(".splitVersionContainer").classList.remove("hide"):page.querySelector(".splitVersionContainer").classList.add("hide"),page.querySelector(".mediaSources"));let anyDisplayed=!1;parentElem.innerHTML="";for(let i=0,length=mediaSources.length;i"+textEncoding.htmlEncode(v.Name)+""}).join(""),1"+textEncoding.htmlEncode(v.DisplayTitle||v.Codec?.toUpperCase()||"")+""}).join(""),setTrackSelectionFieldDisabled(select,!0),mediaSources.length?page.querySelector(".selectVideoContainer").classList.remove("hide"):page.querySelector(".selectVideoContainer").classList.add("hide")}function renderAudioSelections(page,mediaSources){let mediaSourceId=page.querySelector(".selectSource").value;var mediaSources=mediaSources.filter(function(m){return m.Id===mediaSourceId})[0],tracks=mediaSources.MediaStreams.filter(function(m){return"Audio"===m.Type&&(-1!==m.Index||null!=m.DisplayTitle||null!=m.Codec)}),select=page.querySelector(".selectAudio");let selectedId=mediaSources.DefaultAudioStreamIndex;select.innerHTML=tracks.map(function(v){var selected=v.Index===selectedId?" selected":"",embeddedTitle=v.Title&&!(v.DisplayTitle||"").includes(v.Title)?v.Title:null;return""+textEncoding.htmlEncode(v.DisplayTitle||v.Codec?.toUpperCase()||"")+""}).join(""),1"+tracks.map(function(v){selected=v.Index===selectedId?" selected":"";var embeddedTitle=v.Title&&!(v.DisplayTitle||"").includes(v.Title)?v.Title:null;return""+textEncoding.htmlEncode(v.DisplayTitle)+""}).join(""),page.querySelector(".selectSubtitlesContainer").classList.remove("hide")}else select.innerHTML="",page.querySelector(".selectSubtitlesContainer").classList.add("hide")}function setButtonText(page,query,html){var elems=page.querySelectorAll(query);for(let i=0,length=elems.length;i'+globalize.translate("TimeRemainingValue",datetime.getHumanReadableRuntime(ticksLeft))+"",resumeInfoElement.innerHTML=indicators.getProgressBarHtml(item,{containerClass:"resumeInfoProgressBar",animated:!0})+ticksLeft,resumeInfoElement.classList.remove("hide")):resumeInfoElement.classList.add("hide")}function setNextUpButtonText(instance,page){return getNextUpItems.call(instance,{Limit:1,EnableTotalRecordCount:!1}).then(function(result){var result=result.Items[0],resumeInfo=page.querySelector(".detailResumeInfo");if(result){var href,resumeNameElement=resumeInfo.querySelector(".resumeName");let resumeName=itemManager.getDisplayName(result);layoutManager.tv||(href=appRouter.getRouteUrl(result,{}),resumeName=''+resumeName+""),resumeNameElement.innerHTML=resumeName,resumeNameElement.classList.remove("hide"),setResumeProgress(resumeInfo,result),result.UserData&&0=new Date(Date.parse(item.StartDate))&&now'+textEncoding.htmlEncode(artist.Name)+"")}return html=html.join(" / ")}function inferContext(item){switch(item.Type){case"Series":case"Season":case"Episode":return"tvshows";case"Movie":return"movies";case"Game":case"GameSystem":return"games";case"MusicArtist":case"MusicAlbum":case"Audio":case"AudioBook":case"MusicVideo":case"MusicGenre":return"music";case"Program":case"TvChannel":case"Timer":case"SeriesTimer":return"livetv";default:return null}}function renderName(instance,item,apiClient,user,containers){var itemForTitle="Timer"===item.Type&&item.ProgramInfo||item,context=inferContext(itemForTitle),parentNameHtml=[];let parentRoute,parentNameLast=!1,hasFocusableButton=!1;var fontSize=parseFloat(window.getComputedStyle(document.body,null).getPropertyValue("font-size")),fontSize=Math.round(2*fontSize*2.4)+Math.round(.2*fontSize),apiClient="title"!==getLogoPlacement(itemForTitle)?null:apiClient.getLogoImageUrl(itemForTitle,{maxHeight:Math.max(fontSize,260)},skinManager.getPreferredLogoImageTypes());let itemNamePrimaryClass="itemName-primary",itemPrimaryNameContainerClass="itemPrimaryNameContainer";if(itemForTitle.AlbumArtists&&itemForTitle.AlbumArtists.length)parentNameHtml.push(getArtistLinksHtml(itemForTitle.AlbumArtists,itemForTitle.ServerId,context)),parentNameLast=!0;else if(itemForTitle.ArtistItems&&itemForTitle.ArtistItems.length&&"MusicVideo"===itemForTitle.Type)parentNameHtml.push(getArtistLinksHtml(itemForTitle.ArtistItems,itemForTitle.ServerId,context)),parentNameLast=!0;else if(itemForTitle.GameSystem&&itemForTitle.GameSystemId)parentNameLast=!0,parentRoute=appRouter.getRouteUrl({Id:itemForTitle.GameSystemId,Name:itemForTitle.GameSystem,Type:"GameSystem",IsFolder:!0,ServerId:itemForTitle.ServerId},{context:context}),hasFocusableButton=!0,parentNameHtml.push(''+textEncoding.htmlEncode(itemForTitle.GameSystem)+"");else if(itemForTitle.SeriesName&&itemForTitle.SeriesId){parentRoute=appRouter.getRouteUrl({Id:itemForTitle.SeriesId,Name:itemForTitle.SeriesName,Type:"Series",IsFolder:!0,ServerId:itemForTitle.ServerId},{context:context});let seriesName=textEncoding.htmlEncode(itemForTitle.SeriesName);apiClient?(seriesName=''+seriesName+'',itemNamePrimaryClass+=" itemName-primary-logo",layoutManager.tv&&(itemNamePrimaryClass+=" itemName-primary-logo-tv"),itemPrimaryNameContainerClass+=" itemPrimaryNameContainer-logo",hasFocusableButton=!0,parentNameHtml.push(''+seriesName+"")):(hasFocusableButton=!0,parentNameHtml.push(''+seriesName+""))}else itemForTitle.SeriesName?parentNameHtml.push(textEncoding.htmlEncode(itemForTitle.SeriesName)):(itemForTitle.IsSeries||itemForTitle.EpisodeTitle)&&parentNameHtml.push(textEncoding.htmlEncode(itemForTitle.Name));itemForTitle.Album&&itemForTitle.AlbumId&&("MusicVideo"===itemForTitle.Type||"Audio"===itemForTitle.Type)?(parentRoute=appRouter.getRouteUrl({Id:itemForTitle.AlbumId,Name:itemForTitle.Album,Type:"MusicAlbum",IsFolder:!0,ServerId:itemForTitle.ServerId},{context:context}),hasFocusableButton=!0,parentNameHtml.push(''+textEncoding.htmlEncode(itemForTitle.Album)+"")):itemForTitle.Album&&parentNameHtml.push(textEncoding.htmlEncode(itemForTitle.Album));let html="",editorButtonsHtml="",name=(layoutManager.tv||(itemManager.canEdit([item],user)&&(hasFocusableButton=!0,editorButtonsHtml+=''),itemManager.canEditImages(item,user)&&(hasFocusableButton=!0,editorButtonsHtml+='')),enableItemBackdropAsTopImage(itemForTitle)||(itemPrimaryNameContainerClass+=" itemPrimaryNameContainer-centered"),parentNameHtml.length&&(html=parentNameLast?'

'+parentNameHtml.join(" - ")+"

":'

'+parentNameHtml.join(" - ")+"

"),itemManager.getDisplayName(itemForTitle,{includeParentInfo:!0}));name=name&&textEncoding.htmlEncode(name),html&&name&&!parentNameLast?html+='

'+name+"

"+editorButtonsHtml+"
":(parentNameLast||(apiClient&&(name=''+name+'',itemNamePrimaryClass+=" itemName-primary-logo",itemPrimaryNameContainerClass+=" itemPrimaryNameContainer-logo",layoutManager.tv)&&(itemNamePrimaryClass+=" itemName-primary-logo-tv"),name)||editorButtonsHtml)&&(html='

'+name+"

"+editorButtonsHtml+"
"+html);for(let i=0,length=containers.length;i"+textEncoding.htmlEncode(p.Name)+"":''+textEncoding.htmlEncode(p.Name)+""}).join(", "),elem=view.querySelector(".directors");elem.innerHTML=1'+text+"")}page.querySelector(".itemLinks").innerHTML=links.join(""),links.length?page.classList.remove("hide"):page.classList.add("hide")}function renderGenres(page,item,context){var itemGenres=page.querySelector(".itemGenres"),genreElements=[],genres=item.GenreItems||[];let type;switch(context){case"games":type="GameGenre";break;case"music":type="MusicGenre";break;default:type="Genre"}for(let i=0,length=genres.length;i'+text+"")}itemGenres.innerHTML=genreElements.join(""),genreElements.length?page.querySelector(".genresSection").classList.remove("hide"):page.querySelector(".genresSection").classList.add("hide")}function renderStudios(page,item){var itemStudios=page.querySelector(".itemStudios"),studioElements=[],studios=item.Studios||[];for(let i=0,length=studios.length;i'+text+"")}itemStudios.innerHTML=studioElements.join(""),studioElements.length?page.querySelector(".studiosSection").classList.remove("hide"):page.querySelector(".studiosSection").classList.add("hide")}function renderTags(page,item){var itemTags=page.querySelector(".itemTags"),tagElements=[],tags=item.TagItems||[];for(let i=0,length=tags.length;i'+text+"")}itemTags.innerHTML=tagElements.join(""),tagElements.length?page.querySelector(".tagsSection").classList.remove("hide"):page.querySelector(".tagsSection").classList.add("hide")}function onTrackSelectionsSubmit(e){return e.preventDefault(),!1}function bindAll(view,selector,eventName,fn){var elems=view.querySelectorAll(selector);let i,length;for(i=0,length=elems.length;i')+globalize.translate("Home"))+""+"",view.querySelector(".detailMainContainer").innerHTML=html,focusManager.focus(view.querySelector(".btnHomeItemNotFound")),Promise.reject(errorResponse)})})}function getItemWithMediaSource(instance,apiClient){return getItemPromise(instance,apiClient).then(function(item){let playbackMediaSourcesPromise;return(playbackMediaSourcesPromise=isRenderingTrackSelections(item)?playbackManager.getPlaybackMediaSources(item):Promise.resolve([])).then(function(mediaSources){return{item:item,mediaSources:mediaSources}})})}function startDataLoad(instance){var params=instance.params;let apiClient=connectionManager.getApiClient(params.serverId);params=Promise.all([getItemWithMediaSource(instance,apiClient),apiClient.getCurrentUser()]).then(onDataFetched.bind(instance),function(err){return console.log("error loading item: "+err),onItemFetchError(instance,err,apiClient)});return instance.dataPromise=params}function onPlaybackStop(e,stopInfo){var state=stopInfo.state||{};state.NextMediaType||state.IsBackgroundPlayback||stopInfo.player?.isLocalPlayer&&!userSettings.enableVideoUnderUI()&&(this.currentItem||{}).MediaType===(stopInfo=state.NowPlayingItem||{}).MediaType&&stopInfo.MediaType&&"Episode"===stopInfo.Type&&(this.showItemOnResume=stopInfo)}function onPlayerChange(){var view=this.view,item=this.currentItem;view&&item&&renderTrackSelectionsWithoutUser(view,this,item)}function getPlayOptions(view,params,startPositionTicks){var audioStreamIndex=view.querySelector(".selectAudio").value||null;return{startPositionTicks:startPositionTicks,mediaSourceId:view.querySelector(".selectSource").value,audioStreamIndex:audioStreamIndex,subtitleStreamIndex:view.querySelector(".selectSubtitles").value,parentId:params.parentId}}function playCurrentItem(instance,mode){return loadMultiSelect().then(function(MultiSelect){var startPositionTicks;MultiSelect?.canPlay()?"shuffle"===mode?MultiSelect.shuffle():MultiSelect.play():(startPositionTicks=(MultiSelect=instance.currentItem).UserData&&"resume"===mode?null:0,startPositionTicks=getPlayOptions(instance.view,instance.params,startPositionTicks),"shuffle"===mode&&(startPositionTicks.shuffle=!0),startPositionTicks.items=[MultiSelect],playbackActions.play(startPositionTicks))})}function onPlayClick(e){playCurrentItem(this,e.currentTarget.getAttribute("data-mode"))}function onShuffleClick(){playCurrentItem(this,"shuffle")}function onEdited(){reloadItem(this,!0)}function onEditCancel(){}function onEditMetadataClick(){let currentItem=this.currentItem,instance=this;require(["metadataEditor"]).then(function(responses){return(new responses[0]).show(currentItem.Id,currentItem.ServerId).then(onEdited.bind(instance),onEditCancel)})}function onEditImagesClick(){let currentItem=this.currentItem,instance=this;require(["imageEditor"],function(imageEditor){imageEditor.show({itemId:currentItem.Id,serverId:currentItem.ServerId}).then(onEdited.bind(instance),onEditCancel)})}function onDeleteClick(){var currentItem=this.currentItem;itemManager.deleteItems({items:[currentItem],navigate:"back"})}function onCancelSeriesTimerClick(){onDeleteClick.call(this)}function onCancelTimerClick(){let instance=this;var item=this.currentItem,type=item.Type;let serverId=item.ServerId,timerId="Timer"===type?item.Id:item.TimerId;require(["recordingHelper"],function(recordingHelper){recordingHelper.cancelTimer(connectionManager.getApiClient(serverId),timerId,!0).then(function(){reloadItem(instance,!0)})})}function onPlayTrailerClick(){var currentItem=this.currentItem;playbackManager.playTrailers(currentItem)}function onDownloadChange(){reloadItem(this,!0)}function splitVersions(instance,page,apiClient,params){showConfirm("Are you sure you wish to split the media sources into separate items?","Split Media Apart").then(function(){loading.show(),apiClient.ungroupVersions(params.id).then(function(){loading.hide(),reloadItem(instance,!0)})})}function onReadMoreClick(e){showAlert({html:e.currentTarget.closest(".overview-container").querySelector(".overview-text").innerHTML,confirmButton:!1,title:itemManager.getDisplayName(this.currentItem)||this.currentItem.Name,centerText:!1,item:this.currentItem})}function onSplitVersionsClick(){var params=this.params,apiClient=connectionManager.getApiClient(params.serverId);splitVersions(this,this.view,apiClient,params)}function onPromiseRejected(e){console.log("itemContextMenu close: "+e)}function getSortMenuOptions(item){switch(item.Type){case"Playlist":return itemManager.getSortMenuOptions({apiClient:connectionManager.getApiClient(item),itemType:"PlaylistItem"});case"BoxSet":return itemManager.getSortMenuOptions({apiClient:connectionManager.getApiClient(item),itemType:"BoxSetItem"});default:return[]}}function setSelectedSortOption(options,currentValues){for(let i=0,length=options.length;i
'+items.map(function(item){let tabClass="emby-button emby-tab-button secondaryText detailSeasonTab";layoutManager.tv&&(tabClass+=" emby-button-tv");item='";return index++,item}).join("")+"
";seasonTabsParent.innerHTML=items,seasonTabsParent.classList.remove("hide")}else seasonTabsParent.classList.add("hide"),seasonTabsParent.innerHTML=""}function onSeasonTabChange(e){var seasonTabs=this.seasonTabs;if(seasonTabs){e=e.detail.selectedTabIndex,seasonTabs=seasonTabs.querySelector('.detailSeasonTab[data-index="'+e+'"]');if(seasonTabs){let id=seasonTabs.getAttribute("data-id");e=(this.seasonItems||[]).filter(function(s){return s.Id===id})[0];e&&scrollEpisodesToSeason(this,e.Id)}}}function initSeriesItemsSection(instance,item,apiClient){let section=instance.view.querySelector(".seriesItemsSection");return"Series"!==item.Type?(section.classList.add("hide"),Promise.resolve()):getSeasons.call(instance,{EnableUserData:!1,EnableTotalRecordCount:!1,EnableImages:!1}).then(function(result){instance.seasonItems=result.Items,setScopedFocus(instance.view,section.querySelector(".focusable"),!0);var itemsContainer=section.querySelector(".itemsContainer");itemsContainer.parentContainer=section;let seriesDisplay=userSettings.seriesDisplay();ApiClient.isLocalItem(item)&&(seriesDisplay="");var hasMultipleSeasons=instance.hasMultipleSeasons=2<=result.Items.length,renderAllEpisodes=instance.renderAllEpisodes="episodes"===seriesDisplay||"episodessingleseason"===seriesDisplay&&!hasMultipleSeasons,renderSeasonsWithTabs=renderAllEpisodes&&hasMultipleSeasons&&layoutManager.tv,sectionTitleElement=section.querySelector(".sectionTitle"),detailSelectSeason=(sectionTitleElement.innerHTML=renderAllEpisodes?1===result.Items.length?result.Items[0].Name:globalize.translate("Episodes"):globalize.translate("Seasons"),renderAllEpisodes&&hasMultipleSeasons?sectionTitleElement.classList.add("hide"):sectionTitleElement.classList.remove("hide"),renderAllEpisodes?itemsContainer.setAttribute("data-focusabletype","nearest"):itemsContainer.setAttribute("data-focusabletype","autofocus"),section.querySelector(".detailSelectSeason")),detailSelectSeasonContainer=section.querySelector(".detailSelectSeasonContainer"),hasMultipleSeasons=(renderAllEpisodes&&hasMultipleSeasons&&!renderSeasonsWithTabs?detailSelectSeasonContainer.classList.remove("hide"):detailSelectSeasonContainer.classList.add("hide"),section.querySelector(".seasonTabs"));renderAllEpisodes?(itemsContainer.classList.add("allEpisodesItemsContainer"),renderSeasonsWithTabs?(sectionTitleElement.closest(".sectionTitleContainer").classList.add("hide"),renderSeasonTabs(instance,hasMultipleSeasons,result.Items),instance.seasonTabs=section.querySelector(".seasonTabs-emby-tabs"),instance.seasonTabs.addEventListener("tabchange",onSeasonTabChange.bind(instance))):(sectionTitleElement.closest(".sectionTitleContainer").classList.remove("hide"),hasMultipleSeasons.classList.add("hide"),hasMultipleSeasons.innerHTML="",instance.seasonTabs=null)):(sectionTitleElement.closest(".sectionTitleContainer").classList.remove("hide"),hasMultipleSeasons.innerHTML="",hasMultipleSeasons.classList.add("hide"),instance.seasonTabs=null),(instance.detailSelectSeason=detailSelectSeason)&&(detailSelectSeason.getItems=getSeasons.bind(instance),detailSelectSeason.addEventListener("change",onDetailSelectSeasonChange.bind(instance))),itemsContainer.fetchData=getSeriesChildrenItems.bind(instance),itemsContainer.getListOptions=getSeriesChildrenListOptions.bind(instance),renderAllEpisodes&&(itemsContainer.afterRefresh=afterAllEpisodesRefreshed.bind(instance),(detailSelectSeasonContainer=instance.view.querySelector(".childrenItemsScroller")).addScrollEventListener(onSeriesEpisodesHorizontalScroll.bind(instance),{}),detailSelectSeasonContainer.addEventListener("focus",onSeriesEpisodesFocus.bind(instance),!0))})}function initArtistAlbumsSection(instance,item,apiClient){var section=instance.view.querySelector(".artistAlbumsSection"),itemsContainer=section.querySelector(".itemsContainer"),apiClient=(itemsContainer.parentContainer=section,appRouter.getRouteUrl("list",{serverId:apiClient.serverId(),itemTypes:"MusicAlbum",albumArtistId:item.Id}));section.querySelector(".sectionTitleTextButton").href=apiClient,itemsContainer.setAttribute("data-virtualscrolllayout","horizontal-grid"),itemsContainer.fetchData=getMusicArtistChildrenItems.bind(instance),itemsContainer.getListOptions=getMusicArtistChildrenListOptions}function getAppearsOnListsListOptions(items){return{renderer:cardBuilder,options:{shape:"autooverflow",centerText:!0,fields:["Name"],overlayText:!1,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function getAppearsOnListsItems(query){var item=this.currentItem,apiClient=connectionManager.getApiClient(item);return query=Object.assign({fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",IncludeItemTypes:"Playlist,BoxSet",Recursive:!0,SortBy:"SortName",ListItemIds:item.Id},query),apiClient.getItems(apiClient.getCurrentUserId(),query)}function getArtistSongsItems(query){var item=this.currentItem,item=connectionManager.getApiClient(item);return item.getItems(item.getCurrentUserId(),Object.assign({Recursive:!0,IncludeItemTypes:"Audio",ArtistIds:this.currentItem.Id,SortBy:"PlayCount,SortName",SortOrder:"Descending,Ascending",ImageTypeLimit:1,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio"},query))}function getArtistSongsListOptions(items){return layoutManager.tv?{renderer:cardBuilder,options:{shape:"auto",lines:2,centerText:!1,fields:["Name","Album"],overlayPlayButton:!0,overlayText:!1,sideFooter:!0,action:"play"},virtualScrollLayout:"horizontal-grid",commandOptions:{openArtist:!1}}:{renderer:listView,options:{action:"playallfromhere",overlayPlayButton:!1,verticalWrap:!0,mediaInfo:!1,enableSideMediaInfo:!1,enableUserDataButtons:!1,fields:["Name","ParentName"]},virtualScrollLayout:"horizontal-grid"}}function initArtistSongsSection(instance,view,item,apiClient){var headerText,headerHtml;"MusicArtist"!==item.Type||(headerText=view.querySelector(".artistSongsItemsHeader"),headerHtml="",headerHtml='',headerHtml=(headerHtml+='

')+globalize.translate("Songs"),headerText.innerHTML=headerHtml=headerHtml+"

"+"
",(apiClient=view.querySelector(".artistSongsItemsContainer")).classList.add("generalItemsContainer"),apiClient.fetchData=getArtistSongsItems.bind(instance),apiClient.getListOptions=getArtistSongsListOptions,apiClient.parentContainer=apiClient.closest(".verticalSection"),layoutManager.tv)||((item=apiClient.parentContainer.querySelector(".sectionTitleContainer")).classList.remove("sectionTitleContainer-cards"),item.classList.add("sectionTitleContainer-wrappedlistview"))}function getPeopleListOptions(items){return{renderer:cardBuilder,options:{cardLayout:!1,centerText:!0,fields:["Name","PersonRole"],cardFooterAside:!1,showPersonRoleOrType:!0,multiSelect:!1,coverImage:!0,shape:"portrait",draggable:!1,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function getPeopleItemsFn(instance){return function(query){let serverId=instance.currentItem.ServerId,people=(instance.currentItem.People||[]).map(function(p){return(p=Object.assign({},p)).ServerId=serverId,"Person"!==p.Type&&(p.PersonType=p.Type,p.Type="Person"),p});var totalRecordCount=people.length;return query&&(people=people.slice(query.StartIndex||0),query.Limit)&&people.length>query.Limit&&(people.length=query.Limit),Promise.resolve({Items:people,TotalRecordCount:totalRecordCount})}}function getMoreLikeThisListOptionsFn(item){return function(items){var fields=["Name"];return"Movie"!==item.Type&&"Trailer"!==item.Type&&"Program"!==item.Type&&"Game"!==item.Type&&"Series"!==item.Type||fields.push("ProductionYear"),"MusicAlbum"!==item.Type&&"Game"!==item.Type||fields.push("ParentName"),"Program"===item.Type&&fields.unshift("ParentName"),{renderer:cardBuilder,options:{shape:"auto",lines:"Game"===item.Type?3:"Program"===item.Type?2:null,centerText:!0,fields:fields,overlayPlayButton:!0,overlayText:!1,multiSelect:"Program"!==item.Type&&"Timer"!==item.Type,contextMenu:"Program"!==item.Type&&"Timer"!==item.Type,draggable:"Program"!==item.Type&&"Timer"!==item.Type,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}}function getMoreLikeThisItems(){var item=this.currentItem,apiClient=connectionManager.getApiClient(item),options={Limit:12,UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear,Status,EndDate",EnableTotalRecordCount:!1},item=(("Program"===item.Type||"Timer"===item.Type&&item.ProgramId&&!item.IsSports)&&(options.GroupProgramsBySeries=!0),"MusicAlbum"===item.Type&&item.AlbumArtists&&item.AlbumArtists.length&&(options.ExcludeArtistIds=item.AlbumArtists[0].Id),"Timer"===item.Type?item.ProgramId:item.Id);return apiClient.getSimilarItems(item,options)}function initMoreLikeThisSection(instance,view,item,apiClient){itemHelper.supportsSimilarItems(item)&&((view=view.querySelector(".similarItemsContainer")).fetchData=getMoreLikeThisItems.bind(instance),view.parentContainer=view.closest(".verticalSection"),view.getListOptions=getMoreLikeThisListOptionsFn(item),view.classList.add("generalItemsContainer"))}function getMoreLikeThisOnLiveTVListOptions(items){return{renderer:cardBuilder,options:{shape:"auto",fields:["ParentName","Name","ProductionYear"],centerText:!0,showDetailsMenu:!0,overlayPlayButton:!0,overlayText:!1,lines:2,draggable:!1,multiSelect:!1,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function getMoreLikeThisOnLiveTVItems(){var item=this.currentItem,apiClient=connectionManager.getApiClient(item);return apiClient.getSimilarItems(item.Id,{userId:apiClient.getCurrentUserId(),limit:12,fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear",IncludeItemTypes:"Program",EnableTotalRecordCount:!1,GroupProgramsBySeries:!0})}function initMoreLikeThisOnLiveTVSection(instance,view,item,apiClient){itemHelper.supportsSimilarItemsOnLiveTV(item,apiClient)&&((item=view.querySelector(".similarOnLiveTVItemsContainer")).fetchData=getMoreLikeThisOnLiveTVItems.bind(instance),item.parentContainer=item.closest(".verticalSection"),item.getListOptions=getMoreLikeThisOnLiveTVListOptions,item.classList.add("generalItemsContainer"))}function initPeopleSection(instance,view,item,apiClient){view=view.querySelector(".peopleItemsContainer");view.fetchData=getPeopleItemsFn(instance),view.parentContainer=view.closest(".verticalSection"),view.getListOptions=getPeopleListOptions,view.classList.add("generalItemsContainer")}function initAppearsOnListSection(instance,view,item,apiClient,user){if(itemManager.canAddToCollection(item,user)||itemManager.canAddToPlaylist(item)){switch(item.Type){case"Season":case"Person":case"Genre":case"MusicGenre":case"GameGenre":case"BoxSet":case"Playlist":case"Folder":case"CollectionFolder":case"UserView":case"GameSystem":case"Studio":case"PhotoAlbum":case"Program":case"Channel":case"TvChannel":return}user=view.querySelector(".appearsOnListsItemsContainer");user.fetchData=getAppearsOnListsItems.bind(instance),user.getListOptions=getAppearsOnListsListOptions,user.parentContainer=user.closest(".verticalSection"),user.classList.add("generalItemsContainer")}}function getUpcomingOnTVItemsFn(query){var item=this.currentItem,apiClient=connectionManager.getApiClient(item);return query=Object.assign({UserId:apiClient.getCurrentUserId(),HasAired:!1,SortBy:"StartDate",ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableUserData:!1,Fields:"PrimaryImageAspectRatio,ChannelInfo"},query),"Program"===item.Type||"Timer"===item.Type&&item.ProgramId?item.AsSeries?query.SeriesFromProgramId=item.Id:(query.ShowingsFromProgramId=item.ProgramId||item.Id,query.ExcludeItemIds=item.ProgramId||item.Id):query.LibrarySeriesId=item.Id,apiClient.getLiveTvPrograms(query)}function getUpcomingOnTVListOptions(items){return{renderer:cardBuilder,options:{preferThumb:"auto",shape:"autooverflow",fields:["Name","ChannelName","AirTime"],centerText:!0,overlayText:!1,overlayPlayButton:!1,showAirDateTime:!0,multiSelect:!1,draggable:!1,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function initUpcomingOnTVSection(instance,view,item,apiClient){("Series"===item.Type||"Program"===item.Type||"Timer"===item.Type&&item.ProgramId)&&((view=view.querySelector(".seriesScheduleItemsContainer")).fetchData=getUpcomingOnTVItemsFn.bind(instance),view.parentContainer=view.closest(".verticalSection"),view.getListOptions=getUpcomingOnTVListOptions.bind(instance),view.classList.add("generalItemsContainer"),"Program"!==item.Type&&"Timer"!==item.Type||(item.AsSeries?view.parentContainer.querySelector(".sectionTitle").innerHTML=globalize.translate("Showings"):view.parentContainer.querySelector(".sectionTitle").innerHTML=globalize.translate("HeaderOtherShowings")))}function getNextUpItems(query){var item=this.currentItem,apiClient=connectionManager.getApiClient(item);return"MusicAlbum"===item.Type?apiClient.getNextUpAudioBookItems(Object.assign({AlbumId:item.Id,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",ImageTypeLimit:1,UserId:apiClient.getCurrentUserId()},query)):apiClient.getNextUpEpisodes(Object.assign({SeriesId:item.Id,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",ImageTypeLimit:1,UserId:apiClient.getCurrentUserId()},query))}function getAdditionalPartsItems(){var apiClient,item=this.currentItem;return(item.PartCount||1)<2?Promise.resolve({TotalRecordCount:0,Items:[]}):(apiClient=connectionManager.getApiClient(item)).getAdditionalVideoParts(apiClient.getCurrentUserId(),item.Id)}function getAdditionalPartsListOptions(items){return{renderer:cardBuilder,options:{shape:"autooverflow",scalable:!0,fields:["Name","Runtime"],action:"playallfromhere",centerText:!0,overlayText:!1,draggable:!1,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function initAdditionalPartsSection(instance,view,item,apiClient){view=view.querySelector(".additionalPartsItemsContainer");view.fetchData=getAdditionalPartsItems.bind(instance),view.parentContainer=view.closest(".verticalSection"),view.getListOptions=getAdditionalPartsListOptions,view.classList.add("generalItemsContainer")}function getExtrasItems(query){var item=this.currentItem,apiClient=connectionManager.getApiClient(item);return apiClient.getSpecialFeatures(apiClient.getCurrentUserId(),item.Id,{Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio"}).then(function(items){var totalRecordCount=items.length;return query&&(items=items.slice(query.StartIndex||0),query.Limit)&&items.length>query.Limit&&(items.length=query.Limit),{Items:items,TotalRecordCount:totalRecordCount}})}function getExtrasListOptions(items){return{renderer:cardBuilder,options:{shape:"autooverflow",scalable:!0,fields:["Name","Runtime"],centerText:!0,overlayText:!1,draggable:!1,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function initExtrasSection(instance,view,item,apiClient){itemHelper.supportsExtras(item)&&((item=view.querySelector(".extrasItemsContainer")).fetchData=getExtrasItems.bind(instance),item.parentContainer=item.closest(".verticalSection"),item.getListOptions=getExtrasListOptions,item.classList.add("generalItemsContainer"))}function initLinkedItemsSection(instance,view,item,apiClient){switch(item.Type){case"Genre":case"MusicGenre":case"GameGenre":case"Person":case"Studio":case"MusicArtist":case"Tag":case"BoxSet":break;default:return}instance._linkedItemsView||(instance._linkedItemsView=new LinkedItemsView({view:view.querySelector(".linkedItems"),params:instance.params,item:item,apiClient:apiClient,requestedItemFields:instance.getRequestedItemFields()}))}function getProgramGuideItems(query){var item=this.currentItem,apiClient=connectionManager.getApiClient(item);return apiClient.getLiveTvPrograms(Object.assign({ChannelIds:item.Id,UserId:apiClient.getCurrentUserId(),HasAired:!1,SortBy:"StartDate",ImageTypeLimit:1,EnableUserData:!1,Fields:"PrimaryImageAspectRatio,Overview"},query))}function getProgramGuideListOptions(items){var smallerLayout="true"===this.params.asDialog&&layoutManager.tv,fields=["ParentName","Name","StartToEndDateTime"];return smallerLayout||fields.push("Overview"),{renderer:listView,options:{imageSize:smallerLayout?"medium":"large",enableUserDataButtons:!1,mediaInfo:!1,mediaInfoWithTitle:!0,draggable:!1,multiSelect:!1,defaultShape:"portrait",fields:fields},virtualScrollLayout:"vertical-grid"}}function initProgramGuideSection(instance,view,item,apiClient){"TvChannel"===item.Type&&((item=view.querySelector(".programGuideItemsContainer")).fetchData=getProgramGuideItems.bind(instance),item.parentContainer=item.closest(".programGuideSection"),item.getListOptions=getProgramGuideListOptions.bind(instance),item.classList.add("generalItemsContainer"))}function getSeriesTimerScheduleItems(){var item=this.currentItem,apiClient=connectionManager.getApiClient(item);return apiClient.getLiveTvTimers({UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",SortBy:"StartDate",EnableTotalRecordCount:!1,EnableUserData:!1,SeriesTimerId:item.Id,Fields:"ChannelInfo,ChannelImage"})}function getSeriesTimerListOptions(items){return{renderer:listView,options:{enableUserDataButtons:!1,image:!0,mediaInfo:!1,imageSize:"large",moreButton:!1,recordButton:!1,draggable:!1,multiSelect:!1,fields:["ParentName","Name","StartToEndDateTime","ChannelName","Overview"],highlight:!1},virtualScrollLayout:"vertical-grid"}}function initSeriesTimerScheduleSection(instance,view,item,apiClient){"SeriesTimer"===item.Type&&((item=view.querySelector(".seriesTimerScheduleItemsContainer")).fetchData=getSeriesTimerScheduleItems.bind(instance),item.parentContainer=item.closest(".verticalSection"),item.getListOptions=getSeriesTimerListOptions,item.classList.add("generalItemsContainer"))}function enableDetailPoster(instance,item){return"true"===instance.params.asDialog||!enableTvDetailImageLayout(instance,item)||userSettings.showDetailPoster(layoutManager.tv)}function getDetailImageItems(){var item=this.currentItem,items=[];return item&&enableDetailPoster(this,item)&&items.push(item),Promise.resolve({Items:items,TotalRecordCount:items.length})}function getDetailImageListOptionsFn(itemType,cardClass,imageContainerClassName){imageContainerClassName=imageContainerClassName.split(" ").filter(function(c){return c.includes("detailImage")}).join(" ");let cardBoxClass="detailImageContainerCard-cardBox";return imageContainerClassName.includes("detailImageContainer-side")&&(imageContainerClassName+=" item-fixed-side",cardBoxClass+=" detailImageContainerCard-side-cardBox"),imageContainerClassName+=" imageWidthTest",function(items){return{renderer:cardBuilder,options:{overlayText:!0,fields:[],action:"none",imageClass:"detailImage",imageWidthTestClass:imageContainerClassName,multiSelect:!1,contextMenu:!1,ratingButton:!1,playedButton:!1,cardClass:cardClass,cardBoxClass:cardBoxClass,defaultIcon:!0,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,timerIndicator:!1,randomDefaultBackground:!1,staticElement:!0,progress:"Program"===itemType||"Timer"===itemType,enableUserData:!1,draggable:!1,moreButton:!1,programIndicators:!1,keepImageAnimation:!0},virtualScrollLayout:"vertical-grid"}}}function enableTvDetailImageLayout(instance,item){if("true"!==instance.params.asDialog){switch(item.Type){case"Series":case"Season":case"Audio":case"Program":return!0;case"BoxSet":case"TvChannel":case"Playlist":case"MusicAlbum":case"MusicArtist":case"MusicGenre":return!1}switch(item.MediaType){case"Video":case"Photo":case"Game":case"Book":return!0}}return!1}function afterDetailImageRefreshed(){var detailImageElement=this.querySelector(".detailImage");detailImageElement&&(this.querySelector(".cardImageIcon")?detailImageElement.classList.remove("detailImage-transparent"):detailImageElement.classList.add("detailImage-transparent"))}function initDetailImage(instance,view,item,apiClient){var itemsContainer=getDetailImageContainer(view,item),detailImage=itemsContainer,view=view.querySelector(".detailImageContainer-main"),view=(enableTrackList(item)||"Person"!==item.Type&&"BoxSet"!==item.Type&&"Season"!==item.Type&&"TvChannel"!==item.Type&&"Playlist"!==item.Type&&"MusicGenre"!==item.Type||detailImage.classList.add("detailImageContainer-small"),"Season"!==item.Type&&("Playlist"!==item.Type&&"MusicAlbum"!==item.Type||enableTrackList(item))||view.classList.add("detailImageContainer-main-extrabottommargin"),layoutManager.tv?view.classList.add("detailImageContainer-main-tv"):view.classList.remove("detailImageContainer-main-tv"),enableItemBackdropAsTopImage(item)?view.classList.add("detailImageContainer-hidemobile"):view.classList.remove("detailImageContainer-hidemobile"),imageLoader.getShape([item],{}));detailImage.classList.remove("detailImageContainer-backdrop","detailImageContainer-square","detailImageContainer-portrait","detailImageContainer-fourThree","detailImageContainer-banner"),view&&detailImage.classList.add("detailImageContainer-"+view),itemsContainer.fetchData=getDetailImageItems.bind(instance),(itemsContainer.parentContainer=itemsContainer).getListOptions=getDetailImageListOptionsFn(item.Type,"detailImageContainerCard",detailImage.className),itemsContainer.afterRefresh=afterDetailImageRefreshed,itemsContainer.classList.add("generalItemsContainer"),enableDetailPoster(instance,item)||itemsContainer.classList.add("hide")}function getChaptersFromMarkerList(chapters){return chapters}function getChaptersForDisplay(chapters){var list=[];for(let i=0,length=chapters.length;iquery.Limit&&(chapters.length=query.Limit),Promise.resolve({Items:chapters,TotalRecordCount:videoStream})}function getChaptersCardOptions(items){return{renderer:cardBuilder,options:{shape:"autooverflow",centerText:!0,overlayText:!1,fields:["Name","ChapterTime"],multiSelect:!1,contextMenu:!1,action:"play",draggable:!1,background:"black",focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function getChaptersListViewOptions(items){return{renderer:listView,options:{action:"play",multiSelect:!1,contextMenu:!1,imagePlayButton:!layoutManager.tv,mediaInfo:!1,enableSideMediaInfo:!1,enableUserDataButtons:!1,fields:["Name","ChapterTime"]}}}function initChaptersSection(instance,view,item,apiClient){var section=view.querySelector(".chaptersSection");let html="";"Audio"===item.MediaType?(html+='
',section.classList.remove("verticalSection-cards"),section.classList.add("verticalSection-extrabottompadding"),(sectionTitleContainer=section.querySelector(".sectionTitleContainer")).classList.add("trackList-marginleftcards"),sectionTitleContainer.classList.remove("sectionTitleContainer-cards"),section.querySelector(".sectionTitle").classList.remove("sectionTitle-cards")):html=(html+='
')+'
',section.insertAdjacentHTML("beforeend",html);var sectionTitleContainer=view.querySelector(".chaptersItemsContainer");sectionTitleContainer.fetchData=getChapterItems.bind(instance),sectionTitleContainer.parentContainer=sectionTitleContainer.closest(".verticalSection"),"Audio"===item.MediaType?sectionTitleContainer.getListOptions=getChaptersListViewOptions:sectionTitleContainer.getListOptions=getChaptersCardOptions}function getMoreFromSeasonItems(query){var apiClient,item=this.currentItem;return item.SeasonId&&item.SeriesId?(apiClient=connectionManager.getApiClient(item),query=Object.assign({SeasonId:item.SeasonId,UserId:apiClient.getCurrentUserId(),Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio"},query),apiClient.getEpisodes(item.SeriesId,query).then(function(result){return!query.StartIndex&&result.Items.length<2?Promise.resolve({TotalRecordCount:0,Items:[]}):result})):Promise.resolve({TotalRecordCount:0,Items:[]})}function getMoreFromSeasonListOptions(items){return{renderer:cardBuilder,options:{shape:"auto",scalable:!0,fields:["Name"],overlayText:!1,centerText:!0,includeParentInfoInTitle:!1,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function afterMoreFromSeasonRefreshed(totalResult){if(totalResult.Items.length){var item=this.currentItem;if(item){var query,view=this.view;if(view){let itemsContainer=view.querySelector(".moreFromSeasonItemsContainer");if(itemsContainer){let index=itemsContainer.indexOfItemId(item.Id);if(-1===index)return view=connectionManager.getApiClient(item),query={SeasonId:item.SeasonId,UserId:view.getCurrentUserId(),Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",Limit:0,StartItemId:item.Id},view.getEpisodes(item.SeriesId,query).then(function(result){index=Math.max(totalResult.TotalRecordCount-result.TotalRecordCount,0),itemsContainer.scrollToIndex(Math.min(index+1,totalResult.TotalRecordCount-1),{behavior:"instant",offset:"-padding-inline-start"},!1)});itemsContainer.scrollToIndex(Math.min(index+1,totalResult.TotalRecordCount-1),{behavior:"instant",offset:"-padding-inline-start"},!1)}}}}}function initMoreFromSeasonSection(instance,view,item,apiClient){var section;"Episode"===item.Type&&((section=(view=view.querySelector(".moreFromSeasonItemsContainer")).closest(".verticalSection")).querySelector("h2").innerHTML=globalize.translate("MoreFromValue",item.SeasonName),view.fetchData=getMoreFromSeasonItems.bind(instance),view.parentContainer=section,view.getListOptions=getMoreFromSeasonListOptions,view.afterRefresh=afterMoreFromSeasonRefreshed.bind(instance),view.classList.add("generalItemsContainer"))}function getMoreFromArtistItems(query){var item=this.currentItem;if("MusicAlbum"===item.Type&&!item.AlbumArtists&&!item.AlbumArtists.length)return Promise.resolve({TotalRecordCount:0,Items:[]});query=Object.assign({IncludeItemTypes:"MusicAlbum",Recursive:!0,SortBy:"ProductionYear,SortName",SortOrder:"Descending",Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear"},query);var apiClient=connectionManager.getApiClient(item);return"MusicArtist"===item.Type?query.ContributingArtistIds=item.Id:(query.AlbumArtistIds=item.AlbumArtists[0].Id,query.ExcludeItemIds=item.Id),apiClient.getItems(apiClient.getCurrentUserId(),query)}function getMoreFromArtistListOptions(items){return{renderer:cardBuilder,options:{shape:"auto",scalable:!0,fields:["Name","ProductionYear"],centerText:!0,overlayText:!1,overlayPlayButton:!0,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}function initMoreFromArtistSection(instance,view,item,apiClient){var section;"MusicArtist"!==item.Type&&"MusicAlbum"!==item.Type||(section=(view=view.querySelector(".moreFromArtistItemsContainer")).closest(".verticalSection"),"MusicArtist"===item.Type?section.querySelector(".sectionTitle").innerHTML=globalize.translate("HeaderAppearsOn"):section.querySelector(".sectionTitle").innerHTML=globalize.translate("MoreFromValue",textEncoding.htmlEncode(item.AlbumArtists[0].Name)),view.fetchData=getMoreFromArtistItems.bind(instance),view.parentContainer=section,view.getListOptions=getMoreFromArtistListOptions,view.classList.add("generalItemsContainer"))}function focusFirstUnWatched(element){var items=element.getItems();let focusItem=items.filter(function(i){return!i.UserData||!i.UserData.Played})[0];if(focusItem=focusItem||items[0]){items=element.indexOfItemId(focusItem.Id);if(-1!==items)return element.scrollToIndex(items,{},!0),!0}return!1}function pauseContainers(view){var containers=view.querySelectorAll(".generalItemsContainer");for(let i=0,length=containers.length;i'))}function dispatchItemShowEvent(instance,eventName,item){instance.itemShowDispatched||(instance.itemShowDispatched=!0,instance.view.dispatchEvent(new CustomEvent(eventName,{detail:{item:item},bubbles:!0,cancelable:!1})))}Object.assign(ItemPage.prototype,BaseView.prototype),ItemPage.prototype.onInputCommand=function(e){var command=e.detail.command;switch(command){case"play":return playCurrentItem(this,"resume"),e.preventDefault(),void e.stopPropagation();case"delete":return onDeleteClick.call(this),e.preventDefault(),void e.stopPropagation();case"record":return executeCommandWithCommandProcessor(command,this.currentItem,{positionTo:e.target}),e.preventDefault(),void e.stopPropagation()}BaseView.prototype.onInputCommand.apply(this,arguments)},ItemPage.prototype.onBeginResume=function(options){BaseView.prototype.onBeginResume.apply(this,arguments),"true"!==this.params.asDialog&&(layoutManager.tv?skinHeader.classList.add("detailHeader-noIcons"):skinHeader.classList.remove("detailHeader-noIcons")),startDataLoad(this)},ItemPage.prototype.onResume=function(options){this.showItemOnResume&&(newItem=this.showItemOnResume,appRouter.replaceState(appRouter.getRouteUrl(newItem,{}),!0),this.showItemOnResume=null),BaseView.prototype.onResume.apply(this,arguments),this.itemShowDispatched=null;var newItem=this.view,onPlayerChangeFn=this.playerChangeFn,onPlayerChangeFn=(onPlayerChangeFn&&events.on(playbackManager,"playerchange",onPlayerChangeFn),this.playbackStopFn),onPlayerChangeFn=(onPlayerChangeFn&&events.on(playbackManager,"playbackstop",onPlayerChangeFn),options.refresh||this._fullReloadOnResume);this._fullReloadOnResume=!1,reloadItem(this,onPlayerChangeFn,!1),onPlayerChangeFn||(renderTrackSelectionsWithoutUser(newItem,this,options=this.currentItem,!0),setTrailerButtonVisibility(newItem,options)),this._fullReloadOnResume=!1,this.updateDrawerState()},ItemPage.prototype.updateDrawerState=function(){onNavDrawerStateChange.call(this,{},navDrawer.drawerState)},ItemPage.prototype.onPause=function(options){BaseView.prototype.onPause.apply(this,arguments);var onPlayerChangeFn=this.playerChangeFn,onPlayerChangeFn=(onPlayerChangeFn&&events.off(playbackManager,"playerchange",onPlayerChangeFn),this.playbackStopFn),onPlayerChangeFn=(onPlayerChangeFn&&events.off(playbackManager,"playbackstopped",onPlayerChangeFn),this.onNavDrawerStateChangeFn);onPlayerChangeFn&&events.off(navDrawer,"drawer-state-change",this.onNavDrawerStateChangeFn),pauseContainers(this.view),"true"===this.params.asDialog||options.newViewInfo?.view.classList.contains("itemView")||drawerElement.classList.remove("darkContentContainer"),this._linkedItemsView&&this._linkedItemsView.pause(),this.recordingEditor&&this.recordingEditor.pause()},ItemPage.prototype.enableTransitions=function(){return!0},ItemPage.prototype.destroy=function(){var onLibraryChangedFn=this.onLibraryChangedFn,onLibraryChangedFn=(onLibraryChangedFn&&events.off(serverNotifications,"LibraryChanged",onLibraryChangedFn),this.onLibraryChangedFn=null,this.onUserDataChangedFn),onLibraryChangedFn=(onLibraryChangedFn&&events.off(serverNotifications,"UserDataChanged",onLibraryChangedFn),this.onUserDataChangedFn=null,this.onTimerCancelledFn);onLibraryChangedFn&&events.off(serverNotifications,"TimerCancelled",onLibraryChangedFn),this.onTimerCancelledFn=null,BaseView.prototype.destroy.apply(this,arguments),this.onNavDrawerStateChangeFn=null,this.playerChangeFn=null,this.playbackStopFn=null,this.currentItem=null,this._currentPlaybackMediaSources=null,this.currentRecordingFields&&(this.currentRecordingFields.destroy(),this.currentRecordingFields=null),this.recordingEditor&&(this.recordingEditor.destroy(),this.recordingEditor=null),this._linkedItemsView&&(this._linkedItemsView.destroy(),this._linkedItemsView=null),this.topDetailsContainer=null,this.mainSection=null,this.trackSelectionsContainer=null,this.detailSelectSeason=null,this.seasonTabs=null,this.seasonItems=null,this.params=null,this.dataPromise=null};export default ItemPage;