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", '
', ), 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); });