dashboard-ui/modules/emby-elements/emby-scroller/emby-scroller.js
2023-08-31 15:30:17 +02:00

1 line
6.9 KiB
JavaScript

define(["exports","./../../layoutmanager.js","./../../scroller/smoothscroller.js","./../../headroom/headroom.js","./../emby-scrollbuttons/emby-scrollbuttons.js"],function(_exports,_layoutmanager,_smoothscroller,_headroom,_embyScrollbuttons){function onInit(){this.classList.add("emby-scroller")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var headerElement=document.querySelector(".skinHeader");var EmbyScroller=function(_HTMLDivElement){babelHelpers.inherits(EmbyScroller,_HTMLDivElement);var _super=_createSuper(EmbyScroller);function EmbyScroller(){babelHelpers.classCallCheck(this,EmbyScroller);var _this,self=_this=_super.call(this);return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.createClass(EmbyScroller,[{key:"connectedCallback",value:function(){onInit.call(this);var horizontal="false"!==this.getAttribute("data-horizontal"),slider=this.querySelector(".scrollSlider"),bindHeaderValue=(horizontal&&(slider.style["white-space"]="nowrap"),this.getAttribute("data-bindheader")),bindHeaderValue="true"===bindHeaderValue||_layoutmanager.default.tv&&"tv"===bindHeaderValue,enableScrollButtons=!_layoutmanager.default.tv&&(horizontal||"x"===this.getAttribute("data-scrollbuttonstype"))&&"false"!==this.getAttribute("data-scrollbuttons"),focusScroll=this.getAttribute("data-focusscroll"),slider=(focusScroll=(focusScroll="true"===focusScroll?"adaptive":focusScroll)||("false"!==this.getAttribute("data-centerfocus")?"adaptive":null),this.isPrimaryScroller=bindHeaderValue||"true"===this.getAttribute("data-primaryscroller"),{horizontal:horizontal,mouseWheel:"false"!==this.getAttribute("data-mousewheel"),touchDragging:1,slidee:slider,dragHandle:1,hideScrollbar:enableScrollButtons&&horizontal||null,forceScrollbar:enableScrollButtons&&horizontal||"true"===this.getAttribute("data-forcescrollbar"),allowNativeSmoothScroll:"true"===this.getAttribute("data-allownativesmoothscroll"),focusScroll:focusScroll,focusScrollOffset:this.getAttribute("data-focusscrolloffset")||null,forceNativeScroll:"true"===this.getAttribute("data-forcenativescroll"),forceSmoothScroll:"true"===this.getAttribute("data-forcesmoothscroll"),dynamicFrameSizing:"true"===this.getAttribute("data-dynamicframesizing"),dualScroll:"true"===this.getAttribute("data-dualscroll")}),horizontal=this.getAttribute("data-adaptiveborder");horizontal&&(slider.adaptiveBorder=parseInt(horizontal)),this.scroller=new _smoothscroller.default(this,slider),this.scroller.init(),bindHeaderValue&&(focusScroll=this,(horizontal=new _headroom.default({scroller:focusScroll,element:headerElement,enableScrollingStatus:!0})).init(),focusScroll.headroom=horizontal),enableScrollButtons&&(slider="self"!==(slider=this).getAttribute("data-scrollbuttonparent")?slider.parentNode:slider).insertAdjacentHTML("afterbegin",'<div is="emby-scrollbuttons" class="emby-scrollbuttons"></div>'),this.dispatchEvent(new CustomEvent("upgraded",{cancelable:!1}))}},{key:"disconnectedCallback",value:function(){var headroom=this.headroom,headroom=(headroom&&(headroom.destroy(),this.headroom=null),this.scroller);headroom&&(headroom.destroy(),this.scroller=null)}},{key:"pause",value:function(){this.paused=!0;var headroom=this.headroom;headroom&&headroom.pause()}},{key:"beginResume",value:function(){this.paused=!1;var headroom=this.headroom;headroom&&headroom.beginResume()}},{key:"resume",value:function(){this.paused=!1;var headroom=this.headroom;headroom?headroom.resume():this.isPrimaryScroller&&(headerElement.classList.add("headroom-scrolling"),headerElement.classList.remove("headroom-hidden"))}},{key:"getScrollSize",value:function(){if(this.scroller)return this.scroller.getScrollSize()}},{key:"getScrollWidth",value:function(){if(this.scroller)return this.scroller.getScrollWidth()}},{key:"getScrollHeight",value:function(){if(this.scroller)return this.scroller.getScrollHeight()}},{key:"getScrollPosition",value:function(){if(this.scroller)return this.scroller.getScrollPosition()}},{key:"getLastScrollPosition",value:function(){if(this.scroller)return this.scroller.getLastScrollPosition()}},{key:"isNativeScroll",value:function(){if(this.scroller)return this.scroller.isNativeScroll()}},{key:"getScrollLeft",value:function(){if(this.scroller)return this.scroller.getScrollLeft()}},{key:"getScrollTop",value:function(){if(this.scroller)return this.scroller.getScrollTop()}},{key:"getScrollContainerBoundingClientRect",value:function(){if(this.scroller)return this.scroller.getScrollContainerBoundingClientRect()}},{key:"getScrollSlider",value:function(){if(this.scroller)return this.scroller.getScrollSlider()}},{key:"scrollToBeginning",value:function(scrollOptions){if(this.scroller)return(scrollOptions=scrollOptions||{}).position=0,this.scroller.scrollToPosition(scrollOptions)}},{key:"toStart",value:function(elem,scrollOptions){this.scroller&&this.scroller.toStart(elem,scrollOptions)}},{key:"toCenter",value:function(elem,scrollOptions){this.scroller&&this.scroller.toCenter(elem,scrollOptions)}},{key:"scrollToElement",value:function(elem,scrollOptions){this.scroller&&this.scroller.scrollToElement(elem,scrollOptions)}},{key:"scrollToPosition",value:function(pos){if(this.scroller)return this.scroller.scrollToPosition(pos)}},{key:"addScrollEventListener",value:function(fn,options){this.scroller&&this.scroller.addScrollEventListener(fn,options)}},{key:"removeScrollEventListener",value:function(fn,options){this.scroller&&this.scroller.removeScrollEventListener(fn,options)}},{key:"scrollBackwards",value:function(){this.scroller&&this.scroller.scrollBackwards()}},{key:"scrollForwards",value:function(){this.scroller&&this.scroller.scrollForwards()}},{key:"addResizeObserver",value:function(fn){this.scroller&&this.scroller.addResizeObserver(fn)}},{key:"removeResizeObserver",value:function(fn){this.scroller&&this.scroller.removeResizeObserver(fn)}},{key:"getScrollMultiplier",value:function(){if(this.scroller)return this.scroller.getScrollMultiplier()}},{key:"getScrollLeftMultiplier",value:function(){if(this.scroller)return this.scroller.getScrollLeftMultiplier()}},{key:"getScrollTopMultiplier",value:function(){if(this.scroller)return this.scroller.getScrollTopMultiplier()}},{key:"getPadding",value:function(){if(this.scroller)return this.scroller.getPadding()}},{key:"getElementPosition",value:function(element,horizontal,scrollOptions){if(this.scroller)return this.scroller.getElementPosition(element,horizontal,scrollOptions)}},{key:"notifyResized",value:function(){if(this.scroller)return this.scroller.notifyResized()}},{key:"setHeaderBindingEnabled",value:function(enabled){this.headroom&&!this.paused&&(enabled?(this.headroom.beginResume({}),this.headroom.resume({})):this.headroom.pause())}},{key:"setFocusScroll",value:function(focusScroll){this.scroller&&(null==focusScroll&&(focusScroll="adaptive"),this.scroller.options)&&(this.scroller.options.focusScroll=focusScroll)}}]),EmbyScroller}(babelHelpers.wrapNativeSuper(HTMLDivElement));customElements.define("emby-scroller",EmbyScroller,{extends:"div"}),_exports.default=EmbyScroller});