{"version":3,"file":"js/10-navscroll.js","sources":["js/10-navscroll.js"],"sourcesContent":["/*******************************************************************************\n * Copyright (c) 2019 IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n * IBM Corporation - initial API and implementation\n *******************************************************************************/\nvar navScroll = (function() {\n $(document).ready(function() {\n var scrollAllowed = true;\n var prevScrollTop = 0;\n $(window).scroll(function() {\n if (!scrollAllowed) {\n return;\n }\n var currScrollTop = $(this).scrollTop();\n // if scrolled past nav bar, determine whether to hide or show nav bar\n if ($(\".nav-panel-explore\").hasClass(\"is-active\")) {\n showNav();\n } else if (currScrollTop > $(\"#nav_bar\").outerHeight()) {\n // make docs toolbar position sticky once you scroll past nav bar\n $(\".toolbar\").css(\"position\", \"sticky\");\n\n // if scrolling down, hide nav bar\n if (currScrollTop > prevScrollTop) {\n hideNav();\n }\n // if scrolling up, show nav bar\n else {\n showNav();\n }\n } else {\n $(\"#code_column\").css({ position: \"absolute\", top: \"\" });\n $(\".toolbar\").css({ position: \"static\", top: \"\" });\n $(\".nav\").css(\"top\", \"\");\n }\n\n // When page scrolled back to top: Make nav bar no longer fixed, reset body margin-top\n if (currScrollTop == 0) {\n $(\"#nav_bar\").removeClass(\"fixed_top\");\n $(\"body\").css(\"margin-top\", \"0px\");\n $(\"#toc_column\").css({ position: \"\", top: \"\" });\n }\n\n // make toc scroll off of screen at Nice Work section in guides\n if (typeof isBackgroundBottomVisible === \"function\") {\n if (isBackgroundBottomVisible()) {\n handleTOCScrolling();\n }\n }\n\n prevScrollTop = currScrollTop;\n });\n\n $(window).on(\"resize\", function() {\n if (\n $(\".toolbar\").css(\"position\") == \"sticky\" &&\n $(\"#nav_bar\").hasClass(\"fixed_top\")\n ) {\n $(\".toolbar\").css(\"top\", $(\"#nav_bar\").outerHeight() + \"px\");\n }\n });\n });\n\n // slide nav bar into view, move down elements that are fixed to top of screen\n function showNav() {\n var nav_height = $(\"#nav_bar\").outerHeight();\n\n // fix nav bar to top of screen\n $(\"#nav_bar\").addClass(\"fixed_top\");\n $(\"#nav_bar\").css(\"top\", \"0px\");\n\n // push toc column, toc indicator and code column down below nav bar\n $(\"#toc_column\").css(\"top\", nav_height + \"px\");\n if (window.outerWidth > 1440) {\n $(\"#toc_inner\").css(\"margin-top\", nav_height + \"px\");\n }\n $(\"#toc_indicator\").css(\"margin-top\", nav_height + \"px\");\n $(\"#code_column\").css({ position: \"fixed\", top: nav_height + \"px\" });\n\n // add margin-top to body so page doesn't jump when nav slides into view\n $(\"body\").css(\"margin-top\", nav_height + \"px\");\n\n // in guides, if mobile toc accodion is fixed to top of screen, move toc accordion below fixed nav bar\n if ($(\"#mobile_toc_accordion_container\").hasClass(\"fixed_toc_accordion\")) {\n $(\"#mobile_toc_accordion_container\").css(\"top\", nav_height + \"px\");\n }\n\n // on /guides, if tablet toc accordion is fixed to top of screen, move toc accordion below fixed nav bar\n if ($(\"#tablet_toc_accordion_container\").css(\"position\") === \"fixed\") {\n $(\"#tablet_toc_accordion_container\").css(\"top\", nav_height + \"px\");\n }\n\n // adjust docs toolbar and nav position\n $(\".toolbar\").css(\"top\", nav_height + \"px\");\n if (window.outerWidth < 1024) {\n $(\".nav-container\").css(\n \"top\",\n nav_height + $(\".toolbar\").outerHeight() + \"px\"\n );\n $(\".nav\").css(\"top\", \"\");\n } else {\n $(\".nav\").css(\"top\", nav_height + \"px\");\n }\n\n // move config breadcrumb down when nav bar in view\n $(\".contentStickyBreadcrumbHeader\").css(\n \"top\",\n nav_height + $(\".toolbar\").outerHeight() + \"px\"\n );\n }\n\n // slide nav bar back out of view, reset elements that were pushed down\n function hideNav() {\n // reset nav bar and move off screen\n $(\"#nav_bar\").removeClass(\"fixed_top\");\n $(\"#nav_bar\").css({ top: \"-60px\" });\n\n // reset toc column, toc indicator and code column position\n $(\"#toc_column\").css(\"top\", \"0px\");\n if (window.outerWidth > 1440) {\n $(\"#toc_inner\").css(\"margin-top\", \"0px\");\n }\n $(\"#toc_indicator\").css(\"margin-top\", \"0px\");\n $(\"#code_column\").css({ position: \"fixed\", top: \"0px\" });\n\n // reset body margin-top\n $(\"body\").css(\"margin-top\", \"0px\");\n\n // fix mobile and tablet toc accordion to top of screen again\n $(\"#mobile_toc_accordion_container\").css(\"top\", \"0px\");\n $(\"#tablet_toc_accordion_container\").css(\"top\", \"0px\");\n\n // adjust docs toolbar and nav position\n $(\".toolbar\").css(\"top\", \"0px\");\n if (window.outerWidth < 1024) {\n $(\".nav-container\").css(\"top\", $(\".toolbar\").outerHeight() + \"px\");\n $(\".nav\").css(\"top\", \"\");\n } else {\n $(\".nav-container\").css(\"top\", \"\");\n $(\".nav\").css(\"top\", \"\");\n }\n\n // move config breadcrumb back up when nav bar slides out of view\n $(\".contentStickyBreadcrumbHeader\").css(\n \"top\",\n $(\".toolbar\").outerHeight() + \"px\"\n );\n }\n\n function preventScrolling() {\n scrollAllowed = false;\n }\n\n function allowScrolling() {\n scrollAllowed = true;\n }\n\n return {\n showNav: showNav,\n hideNav: hideNav,\n preventScrolling: preventScrolling,\n allowScrolling: allowScrolling\n };\n})();\n"],"names":["navScroll","showNav","nav_height","$","outerHeight","addClass","css","window","outerWidth","position","top","hasClass","hideNav","removeClass","document","ready","prevScrollTop","scroll","currScrollTop","this","scrollTop","isBackgroundBottomVisible","handleTOCScrolling","on","preventScrolling","scrollAllowed","allowScrolling"],"mappings":"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"}