EmbyCrackedClient/web/videoosd/tvplayqueue.js
2025-06-25 11:46:04 +08:00

1 line
No EOL
3.5 KiB
JavaScript

import playbackManager from"./../modules/common/playback/playbackmanager.js";import cardBuilder from"./../modules/cardbuilder/cardbuilder.js";function buildDefaultLayout(parent,options){return parent.insertAdjacentHTML("afterbegin",'<div is="emby-scroller" class="osdPlayQueue padded-left padded-right flex flex-grow hide osdContentSection padded-top-focusscale padded-bottom-focusscale tvPlayQueueScroller" data-mousewheel="false" data-focusscroll="center" data-contentsection="playqueue"><div is="emby-itemscontainer" class="scrollSlider focuscontainer-x itemsContainer focusable" data-skipplaycommands="true" data-virtualscrolllayout="horizontal-grid"></div></div>'),parent.querySelector(".tvPlayQueueScroller")}function fetchPlaylistItems(query){var player=this.currentPlayer;return this.empty||!player?Promise.resolve({Items:[],TotalRecordCount:0}):playbackManager.getPlaylist(query||{},player)}function getListOptions(items){return{renderer:cardBuilder,options:{action:"setplaylistindex",playAction:"setplaylistindex",shape:"autooverflow",fields:["ParentName","Name","ProductionYear"],lines:2,centerText:!0,cardLayout:!1,cardClass:"tvPlayQueueCard",playQueueIndicator:!0,allowBottomPadding:!1},virtualScrollLayout:"horizontal-grid"}}function scrollOrFocus(instance,focus){let playlistIndex=playbackManager.getCurrentPlaylistIndex(instance.currentPlayer);-1===playlistIndex&&(playlistIndex=0),instance.itemsContainer.scrollToIndex(playlistIndex,{},focus)}function afterRefresh(){var focus=this.itemsContainer.contains(document.activeElement);scrollOrFocus(this,focus)}function focusItemsContainer(){scrollOrFocus(this,!0)}function OsdPlayQueue(options){(this.options=options).parent=buildDefaultLayout(options.parent,options);options=options.parent;this.itemsContainer=options.querySelector(".itemsContainer"),this.itemsContainer.fetchData=fetchPlaylistItems.bind(this),this.itemsContainer.getListOptions=getListOptions.bind(this),this.itemsContainer.afterRefresh=afterRefresh.bind(this),this.itemsContainer.focus=focusItemsContainer.bind(this),this.itemsContainer.scrollResizeObserver=!0}require(["css!videoosd/tvplayqueue.css"]),OsdPlayQueue.prototype.setPausedState=function(paused){var elem=this.options.parent.querySelector(".activePlaylistCardBox");elem&&(paused?elem.classList.add("paused"):elem.classList.remove("paused"))},OsdPlayQueue.prototype.updatePlaylist=function(player,playlistItemId,playlistIndex,playlistLength){this.currentPlayer=player,this.empty=!playlistLength,this.refreshItems()},OsdPlayQueue.prototype.onPlaybackStopped=function(){this.empty=!0,this.refreshItems()},OsdPlayQueue.prototype.refreshItems=function(){let itemsContainer=this.itemsContainer;if(itemsContainer)return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.refreshItems()})},OsdPlayQueue.prototype.onPlaylistItemMoved=function(player,e,info){this.itemsContainer.refreshItems()},OsdPlayQueue.prototype.onPlaylistItemRemoved=function(player,e,info){this.itemsContainer.refreshItems()},OsdPlayQueue.prototype.pause=function(){this.paused=!0,this.itemsContainer.pause&&this.itemsContainer.pause()},OsdPlayQueue.prototype.resume=function(options){this.paused=!1;let itemsContainer=this.itemsContainer;return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.resume(options)})},OsdPlayQueue.prototype.destroy=function(){var options=this.options;options&&(options=options.parent)&&options.remove(),this.options=null,this.currentPlayer=null,this.itemsContainer=null};export default OsdPlayQueue;