1 line
16 KiB
JavaScript
1 line
16 KiB
JavaScript
|
|
import browser from"./../browser.js";import dom from"./../dom.js";import layoutManager from"./../layoutmanager.js";import focusManager from"./../focusmanager.js";import dialogHelper from"./../dialoghelper/dialoghelper.js";import inputManager from"./../common/inputmanager.js";import cardBuilder from"./../cardbuilder/cardbuilder.js";import{appHost}from"./../common/servicelocator.js";import events from"./../emby-apiclient/events.js";import connectionManager from"./../emby-apiclient/connectionmanager.js";import mouseManager from"./../input/mouse.js";import"./../emby-elements/emby-scroller/emby-scroller.js";import"./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";import EmbyItemsContainer from"./../emby-elements/emby-itemscontainer/emby-itemscontainer.js";import playbackManager from"./../common/playback/playbackmanager.js";let CSSPromise=require(["css!modules/slideshow/style.css"]).then(function(){CSSPromise=Promise.resolve()});function getIcon(icon,cssClass,iconClass,canFocus,autoFocus){return'<button type="button" is="paper-icon-button-light" class="'+cssClass+'"'+(canFocus?"":' tabindex="-1"')+'><i class="md-icon '+(iconClass||"")+'">'+icon+"</i></button>"}function showContextMenu(options){return Emby.importModule("./modules/itemcontextmenu.js").then(function(itemContextMenu){return itemContextMenu.show(options)})}function setUserScalable(scalable){try{appHost.setUserScalable(scalable)}catch(err){console.log("error in appHost.setUserScalable: "+err)}}function getItems(query){query=query||{};let items=this.options.items;var totalRecordCount=items.length,limit=query.Limit;return items=items.slice(query.StartIndex||0),limit&&items.length>limit&&(items.length=limit),Promise.resolve({Items:items,TotalRecordCount:totalRecordCount})}function afterRefresh(result){this.TotalRecordCount=result.TotalRecordCount}function getListOptions(items){var fields=this.options.cardFields||["Name"],windowSize=dom.getWindowSize();let cardFooterClass="slideshowCardFooter";return this.options.interactive&&(cardFooterClass+=" slideshowCardFooter-interactive"),layoutManager.tv?cardFooterClass+=" slideshow-largefont-tv":cardFooterClass+=" slideshow-largefont",{renderer:cardBuilder,options:{shape:"backdrop",preferBackdrop:!0,overlayText:!0,fields:fields,multiSelect:!1,hoverMenu:!1,cardClass:"slideshowCard",cardBoxClass:"slideshowCardBox",cardContentClass:"slideshowCardContent",cardImageClass:"slideshowCardImage",innerCardFooterClass:cardFooterClass,cardTextClass:"slideshowCardText",centerText:!0,staticElement:!0,action:"none",contextMenu:!1,draggable:!1,ignoreUIAspect:!0,playedIndicator:!1},virtualScrollLayout:"horizontal-grid",minOverhang:5*Math.max(windowSize.innerHeight,windowSize.innerWidth)}}let isNativeSmoothScrollSupported="scrollBehavior"in document.documentElement.style;export default function(options){let self=this,dlg,currentTimeout,currentIntervalMs,currentIndex,supportsTouchEvent=(this.options=options,browser.chromecast&&(options.interactive=!1),"ontouchstart"in document.documentElement);function onScrollTimeout(){self.scrolling=!1;var isProgramScroll=self.isProgramScroll;if(self.isProgramScroll=!1,!isProgramScroll){isProgramScroll="smooth";var windowSize=dom.getWindowSize(),x=windowSize.innerWidth/2;let elem=document.elementFromPoint(x,windowSize.innerHeight/2);(elem=elem&&elem.closest(".card"))&&scrollToIndex(self.itemsContainer.indexOfElement(elem),isProgramScroll,!1)}self.dlg.classList.remove("slideshow-scrolling"),"Video"===getCurrentItem()?.MediaType?self.btnPlayVideo.classList.remove("hide"):self.btnPlayVideo.classList.add("hide")}let scrollTimeout;function onScroll(){var isProgramScroll=self.isProgramScroll;self.scrolling=!0,isProgramScroll||(restartInterval(),self.dlg.classList.add("slideshow-scrolling")),scrollTimeout&&clearTimeout(scrollTimeout),scrollTimeout=setTimeout(onScrollTimeout,400)}let resizeTimeout,resizeIndex;function onResizeTimeout(){scrollToIndex(resizeIndex,"instant",!1)}function stopResizeTimer(){resizeTimeout&&clearTimeout(resizeTimeout)}function onResize(){self.scrolling&&!self.isProgramScrol
|