13 lines
89 KiB
JavaScript
13 lines
89 KiB
JavaScript
|
|
import playbackManager from"./../modules/common/playback/playbackmanager.js";import focusManager from"./../modules/focusmanager.js";import cardBuilder from"./../modules/cardbuilder/cardbuilder.js";import imageLoader from"./../modules/common/imagehelper.js";import dom from"./../modules/dom.js";import browser from"./../modules/browser.js";import globalize from"./../modules/common/globalize.js";import datetime from"./../modules/common/datetime.js";import layoutManager from"./../modules/layoutmanager.js";import itemManager from"./../modules/common/itemmanager/itemmanager.js";import loading from"./../modules/loading/loading.js";import events from"./../modules/emby-apiclient/events.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import appHeader from"./../modules/appheader/appheader.js";import mediaInfo from"./../modules/mediainfo/mediainfo.js";import backdrop from"./../modules/backdrop/backdrop.js";import OsdPlayQueue from"./playqueue.js";import TvPlayQueue from"./tvplayqueue.js";import LyricsRenderer from"./lyrics.js";import appRouter from"./../modules/approuter.js";import itemContextMenu from"./../modules/itemcontextmenu.js";import itemShortcuts from"./../modules/shortcuts.js";import inputManager from"./../modules/common/inputmanager.js";import userSettings from"./../modules/common/usersettings/usersettings.js";import mouseManager from"./../modules/input/mouse.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../modules/emby-elements/emby-button/paper-icon-button-light.js";import"./../modules/emby-elements/emby-tabs/emby-tabs.js";import"./../modules/emby-elements/emby-slider/emby-slider.js";import appSettings from"./../modules/common/appsettings.js";import{appHost}from"./../modules/common/servicelocator.js";import keyboardManager from"./../modules/input/keyboard.js";import BaseView from"./../modules/viewmanager/baseview.js";import OsdController from"./../modules/playback/osdcontroller.js";import playerSettingsMenu from"./../modules/playback/playersettingsmenu.js";require(["css!videoosd/videoosd.css"]);let useBackdropFilterForBlur=dom.allowBackdropFilter(),headerElement=document.querySelector(".skinHeader"),backdropContainer=document.querySelector(".backdropContainer"),backgroundContainer=document.querySelector(".backgroundContainer"),headerRight=document.querySelector(".headerRight");function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}let enableHighResBlur=(()=>{var deviceMemory,platform,cores=navigator.hardwareConcurrency||4;return!(cores<6||(deviceMemory=navigator.deviceMemory||2)<2||(platform=(navigator.platform||"").toLowerCase(),"android"===globalThis.appMode&&(cores<4||deviceMemory<2||platform.includes("armv7"))))})();function allowTabAnimation(){var deviceMemory,platform,cores=navigator.hardwareConcurrency||4;return!(cores<4||(2400<=(screen.width||screen.availWidth||0)||1400<=(screen.height||screen.availHeight||0))&&cores<6||(deviceMemory=navigator.deviceMemory||2)<2||(platform=(navigator.platform||"").toLowerCase(),"android"===globalThis.appMode&&(cores<4||deviceMemory<2||platform.includes("armv7"))))}let enableTabAnimation=allowTabAnimation(),fadeSize="1.5%",fadeDuration=300;function fadeInLeft(elem){var keyframes=[{opacity:"0",transform:"translate3d(-"+fadeSize+", 0, 0)",offset:0},{opacity:"1",transform:"none",offset:1}],timing={duration:fadeDuration,iterations:1,easing:"ease-out"};elem.animate(keyframes,timing)}function fadeInRight(elem){var keyframes=[{opacity:"0",transform:"translate3d("+fadeSize+", 0, 0)",offset:0},{opacity:"1",transform:"none",offset:1}],timing={duration:fadeDuration,iterations:1,easing:"ease-out"};elem.animate(keyframes,timing)}function isPlaying(player,mediaType){return!(!player||!player.isLocalPlayer)&&(!!mediaType||playbackManager.isPlaying(player))}function isDisplayingLocalVideo(player,mediaType){return!(!player||!player.isLocalPlayer)&&("Video"===mediaType||!mediaType&&playbackManager.isPlayingMediaType(["Video"],
|
||
|
|
<div class="videoOsdVolumeControls videoOsdVolumeControls-top hide osdForceHide videoOsd-hideWhenLocked flex flex-direction-row align-items-center hide-mouse-idle-tv">
|
||
|
|
<button is="paper-icon-button-light" tabindex="-1" class="osdIconButton buttonMute flex-shrink-zero" title="Mute" aria-label="Mute" style="margin:0;">
|
||
|
|
<i class="md-icon md-icon-fill osdIconButton-icon"></i>
|
||
|
|
</button>
|
||
|
|
|
||
|
|
<div class="videoOsdVolumeSliderWrapper videoOsdVolumeSliderWrapper-top flex-grow">
|
||
|
|
<div class="sliderContainer flex-grow">
|
||
|
|
<input is="emby-slider" data-bubble="false" type="range" step="1" min="0" max="100" value="0" class="videoOsdVolumeSlider" tabindex="-1" data-hoverthumb="true" />
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
`,instance.topVolumeControls=elem.querySelector(".videoOsdVolumeControls"),instance.topVolumeSlider=elem.querySelector(".videoOsdVolumeSlider"),instance.topMuteButton=elem.querySelector(".buttonMute"),instance.topMuteButton.addEventListener("click",onMuteButtonClick.bind(instance)),dom.addEventListener(instance.topVolumeSlider,"change",onVolumeSliderInputOrChange.bind(instance),{passive:!0}),dom.addEventListener(instance.topVolumeSlider,"input",onVolumeSliderInputOrChange.bind(instance),{passive:!0})),elem.classList.remove("hide")}function destroyHeaderRightContent(instance){instance.headerRightContainer?.remove(),instance.headerRightContainer=null,instance.topVolumeControls=null,instance.topVolumeSlider=null,instance.topMuteButton=null}Object.assign(VideoOsd.prototype,BaseView.prototype),VideoOsd.prototype.enableWindowInputCommands=function(){return!0},VideoOsd.prototype.onWindowInputCommand=function(e){switch(e.detail.command){case"back":var upNextContainer=e.target.closest(".upNextContainer");return upNextContainer?(e.preventDefault(),void upNextContainer.querySelector(".btnHideUpNext").click()):void(!layoutManager.tv||focusManager.hasExclusiveFocusScope()||(upNextContainer=e.detail.originalEvent?.target)&&headerElement.contains(upNextContainer)||(isDisplayingLocalVideo(this.currentPlayer)?this.currentVisibleMenu&&!this.upNextContainer._visible&&(e.preventDefault(),this.hideOsd()):!this.currentVisibleMenu&&isPlaying(this.currentPlayer)&&(e.preventDefault(),this.showOsd())));case"left":return e.target.closest(".skipIntroContainer,.upNextContainer")?void 0:void("rtl"===document.dir?onFastForwardInputCommand:onRewindInputCommand)(e,this);case"rewind":return e.preventDefault(),void onRewindInputCommand(e,this);case"right":return e.target.closest(".skipIntroContainer,.upNextContainer")?void 0:void("rtl"===document.dir?onRewindInputCommand:onFastForwardInputCommand)(e,this);case"fastforward":return e.preventDefault(),void onFastForwardInputCommand(e,this);case"pageup":return void playbackManager.nextChapter(this.currentPlayer);case"pagedown":return void playbackManager.previousChapter(this.currentPlayer);case"playpause":e.preventDefault(),e.stopPropagation();upNextContainer=this.currentPlayer?.paused();return playbackManager.playPause(this.currentPlayer),void((this.currentVisibleMenu||shouldOsdBeShown(this)&&!upNextContainer)&&this.showOsd());case"play":{e.preventDefault(),e.stopPropagation();let isPaused=this.currentPlayer?.paused();return playbackManager.unpause(this.currentPlayer),void((this.currentVisibleMenu||shouldOsdBeShown(this)&&!isPaused)&&this.showOsd())}case"select":return void(onOsdClick(e,this,null,shouldOsdBeShown(this))&&e.preventDefault());case"up":return this.currentVisibleMenu,this.currentVisibleMenu,void(shouldOsdBeShown(this)&&this.showOsd());case"down":return void(shouldOsdBeShown(this)&&(this.currentVisibleMenu||e.preventDefault(),this.showOsd()));case"menu":case"pause":case"nowplaying":return void(shouldOsdBeShown(this)&&this.showOsd());case"record":return shouldOsdBeShown(this)&&this.showOsd(),void onRecordingCommand(this);case"togglestats":return void toggleStats(this);case"movies":case"music":case"tv":case"settings":case"search":case"favorites":return void e.preventDefault();case"info":return setBottomTabIndex(this,0),void e.preventDefault();case"livetv":return setBottomTabIndex(this,4),void e.preventDefault();case"guide":return setBottomTabIndex(this,5),void e.preventDefault()}BaseView.prototype.onWindowInputCommand.apply(this,arguments)},VideoOsd.prototype.setLockState=function(lockState){((this.currentLockState=lockState)?(headerElement.classList.add("videoOsdHeader-locked"),this.osdBottomElement.classList.add("videoosd-bottom-locked"),this.view.querySelector(".videoOsdUnlockControls").classList.remove("hide"),1===lockState?(this.view.querySelector(".videoOsd-btnUnlock1").classList.remove("hide"),this.view.querySelector(".videoOsd-btnUnlock2").classList.add("hide")):(this.view.querySelector(".videoOsd-btnUnlock1").classList.add("hide"),this.view.querySelector(".videoOsd-btnUnlock2").classL
|