!(function (i) { i.fn.theiaStickySidebar = function (t) { function e(t, e) { var a = o(t, e); a || (console.log("TSS: Body width smaller than options.minWidth. Init is delayed."), i(document).on( "scroll." + t.namespace, (function (t, e) { return function (a) { var n = o(t, e); n && i(this).unbind(a); }; })(t, e) ), i(window).on( "resize." + t.namespace, (function (t, e) { return function (a) { var n = o(t, e); n && i(this).unbind(a); }; })(t, e) )); } function o(t, e) { return t.initialized === !0 || (!(i("body").width() < t.minWidth) && (a(t, e), !0)); } function a(t, e) { t.initialized = !0; var o = i("#theia-sticky-sidebar-stylesheet-" + t.namespace); 0 === o.length && i("head").append(i('')), e.each(function () { function e() { (a.fixedScrollTop = 0), a.sidebar.css({ "min-height": "1px" }), a.stickySidebar.css({ position: "static", width: "", transform: "none" }); } function o(t) { var e = t.height(); return ( t.children().each(function () { e = Math.max(e, i(this).height()); }), e ); } var a = {}; if ( ((a.sidebar = i(this)), (a.options = t || {}), (a.container = i(a.options.containerSelector)), 0 == a.container.length && (a.container = a.sidebar.parent()), a.sidebar.parents().css("-webkit-transform", "none"), a.sidebar.css({ position: a.options.defaultPosition, overflow: "visible", "-webkit-box-sizing": "border-box", "-moz-box-sizing": "border-box", "box-sizing": "border-box" }), (a.stickySidebar = a.sidebar.find(".theiaStickySidebar")), 0 == a.stickySidebar.length) ) { var s = /(?:text|application)\/(?:x-)?(?:javascript|ecmascript)/i; a.sidebar .find("script") .filter(function (i, t) { return 0 === t.type.length || t.type.match(s); }) .remove(), (a.stickySidebar = i("
").addClass("theiaStickySidebar").append(a.sidebar.children())), a.sidebar.append(a.stickySidebar); } (a.marginBottom = parseInt(a.sidebar.css("margin-bottom"))), (a.paddingTop = parseInt(a.sidebar.css("padding-top"))), (a.paddingBottom = parseInt(a.sidebar.css("padding-bottom"))); var r = a.stickySidebar.offset().top, d = a.stickySidebar.outerHeight(); a.stickySidebar.css("padding-top", 1), a.stickySidebar.css("padding-bottom", 1), (r -= a.stickySidebar.offset().top), (d = a.stickySidebar.outerHeight() - d - r), 0 == r ? (a.stickySidebar.css("padding-top", 0), (a.stickySidebarPaddingTop = 0)) : (a.stickySidebarPaddingTop = 1), 0 == d ? (a.stickySidebar.css("padding-bottom", 0), (a.stickySidebarPaddingBottom = 0)) : (a.stickySidebarPaddingBottom = 1), (a.previousScrollTop = null), (a.fixedScrollTop = 0), e(), (a.onScroll = function (a) { if (a.stickySidebar.is(":visible")) { if (i("body").width() < a.options.minWidth) return void e(); if (a.options.disableOnResponsiveLayouts) { var s = a.sidebar.outerWidth("none" == a.sidebar.css("float")); if (s + 50 > a.container.width()) return void e(); } var r = i(document).scrollTop(), d = "static"; if (r >= a.sidebar.offset().top + (a.paddingTop - a.options.additionalMarginTop)) { var c, p = a.paddingTop + t.additionalMarginTop, b = a.paddingBottom + a.marginBottom + t.additionalMarginBottom, l = a.sidebar.offset().top, f = a.sidebar.offset().top + o(a.container), h = 0 + t.additionalMarginTop, g = a.stickySidebar.outerHeight() + p + b < i(window).height(); c = g ? h + a.stickySidebar.outerHeight() : i(window).height() - a.marginBottom - a.paddingBottom - t.additionalMarginBottom; var u = l - r + a.paddingTop, S = f - r - a.paddingBottom - a.marginBottom, y = a.stickySidebar.offset().top - r, m = a.previousScrollTop - r; "fixed" == a.stickySidebar.css("position") && "modern" == a.options.sidebarBehavior && (y += m), "stick-to-top" == a.options.sidebarBehavior && (y = t.additionalMarginTop), "stick-to-bottom" == a.options.sidebarBehavior && (y = c - a.stickySidebar.outerHeight()), (y = m > 0 ? Math.min(y, h) : Math.max(y, c - a.stickySidebar.outerHeight())), (y = Math.max(y, u)), (y = Math.min(y, S - a.stickySidebar.outerHeight())); var k = a.container.height() == a.stickySidebar.outerHeight(); d = (k || y != h) && (k || y != c - a.stickySidebar.outerHeight()) ? (r + y - a.sidebar.offset().top - a.paddingTop <= t.additionalMarginTop ? "static" : "absolute") : "fixed"; } if ("fixed" == d) { var v = i(document).scrollLeft(); a.stickySidebar.css({ position: "fixed", width: n(a.stickySidebar) + "px", transform: "translateY(" + y + "px)", left: a.sidebar.offset().left + parseInt(a.sidebar.css("padding-left")) - v + "px", top: "0px", }); } else if ("absolute" == d) { var x = {}; "absolute" != a.stickySidebar.css("position") && ((x.position = "absolute"), (x.transform = "translateY(" + (r + y - a.sidebar.offset().top - a.stickySidebarPaddingTop - a.stickySidebarPaddingBottom) + "px)"), (x.top = "0px")), (x.width = n(a.stickySidebar) + "px"), (x.left = ""), a.stickySidebar.css(x); } else "static" == d && e(); "static" != d && 1 == a.options.updateSidebarHeight && a.sidebar.css({ "min-height": a.stickySidebar.outerHeight() + a.stickySidebar.offset().top - a.sidebar.offset().top + a.paddingBottom }), (a.previousScrollTop = r); } }), a.onScroll(a), i(document).on( "scroll." + a.options.namespace, (function (i) { return function () { i.onScroll(i); }; })(a) ), i(window).on( "resize." + a.options.namespace, (function (i) { return function () { i.stickySidebar.css({ position: "static" }), i.onScroll(i); }; })(a) ), "undefined" != typeof ResizeSensor && new ResizeSensor( a.stickySidebar[0], (function (i) { return function () { i.onScroll(i); }; })(a) ); }); } function n(i) { var t; try { t = i[0].getBoundingClientRect().width; } catch (i) {} return "undefined" == typeof t && (t = i.width()), t; } var s = { containerSelector: "", additionalMarginTop: 0, additionalMarginBottom: 0, updateSidebarHeight: !0, minWidth: 0, disableOnResponsiveLayouts: !0, sidebarBehavior: "modern", defaultPosition: "relative", namespace: "TSS" }; return (t = i.extend(s, t)), (t.additionalMarginTop = parseInt(t.additionalMarginTop) || 0), (t.additionalMarginBottom = parseInt(t.additionalMarginBottom) || 0), e(t, this), this; }; })(jQuery); //# sourceMappingURL=maps/theia-sticky-sidebar.min.js.map