{"version":3,"file":"js/01-nav.js","sources":["js/01-nav.js"],"sourcesContent":["var navigation = (function(){\n 'use strict';\n var init = function(){\n var $navContainer = $('.nav-container');\n var $navToggle = $('.nav-toggle');\n\n if ($navContainer.length <= 0) return;\n\n $navToggle.on('click', showNav);\n $navContainer.on('click', handlePageClick);\n\n var $menuPanel = $navContainer.find('[data-panel=menu]').eq(0);\n if ($menuPanel.length <= 0) return;\n\n // fix TOC reference section from html minification changes\n var $referenceNav = $(\"span:contains(Reference)\");\n if($referenceNav.length <= 0) return;\n var $addTo = $referenceNav.next();\n var $start = $referenceNav.parent().next();\n while($start.length > 0){\n var $temp = $start.next();\n $start.appendTo($addTo);\n $start = $temp;\n }\n\n // Expand all first level doc categories\n $(\".nav-menu > .nav-list > .nav-item\").addClass('is-active');\n\n var $currentPageItem = $menuPanel.find('.is-current-page').eq(0);\n if ($currentPageItem.length > 0) {\n activateCurrentPath($currentPageItem);\n scrollItemToMidpoint($currentPageItem.find('.nav-link').eq(0));\n } else {\n $menuPanel.scrollTop(0);\n }\n\n $($menuPanel).on(\"click\", \".nav-item-toggle\", function (){\n $(this).parent().toggleClass('is-active');\n })\n\n $($menuPanel).on(\"click\", \".nav-text\", function (){\n $(this).parent().toggleClass('is-active');\n })\n\n if($('.components .version').length === 1){\n $('.nav-panel-explore .context .version').addClass('hide-after');\n $('.nav-panel-explore .context').css('pointer-events', 'none');\n }\n\n $('.nav-container .nav .context').on('click', function () {\n var $currentPanel = $('.nav .is-active[data-panel]');\n var activatePanel = $currentPanel[0].dataset.panel === 'menu' ? 'explore' : 'menu';\n $currentPanel.toggleClass('is-active');\n $('.nav [data-panel=' + activatePanel + ']').toggleClass('is-active');\n });\n\n $(document).on('click', handlePageClick);\n\n $('.nav-menu > .nav-list').on('scroll', function(e){\n e.stopPropagation();\n });\n\n $(document).on('keydown', function(e){\n if(e.which === 27){\n closeVersionPicker();\n }\n });\n\n // NOTE prevent text from being selected by double click\n $menuPanel.on('mousedown', function (e) {\n if (e.detail > 1) e.preventDefault();\n });\n\n $('#filter_titles').on('keyup', filterNavTitles);\n\n $('#clear_filter').on(\"click\", function () {\n $('#filter_titles').val('');\n filterNavTitles();\n })\n };\n\n $('.components .versions li a').on('click', function(e){\n e.stopPropagation();\n location.href = $(this)[0].href;\n closeVersionPicker();\n });\n\n $('.components .versions li').on('click', function(e) {\n e.stopPropagation();\n var li = $(this);\n var anchor = li.find('a');\n anchor.click();\n });\n\n function activateCurrentPath (navItem) {\n var ancestor = navItem.parent();\n while (!(ancestor.hasClass('nav-menu'))) {\n if (ancestor.prop('tagName') === 'LI' && ancestor.hasClass('nav-item')) {\n ancestor.addClass('is-active is-current-path');\n }\n ancestor = ancestor.parent();\n }\n navItem.addClass('is-active is-current-page');\n }\n\n // Detect if the version switcher is open to close it when clicking somewhere else.\n function handlePageClick (e) {\n e.stopPropagation();\n if($('.context')[0].contains(e.target)){\n return;\n }\n if($('.components:visible').length > 0){\n if(!$('.components')[0].contains(e.target)){\n closeVersionPicker();\n }\n }\n }\n\n\n function closeVersionPicker (e) {\n if($('.nav-panel-explore').hasClass('is-active')){\n $('.nav-panel-explore').toggleClass('is-active');\n $('.nav-panel-menu').toggleClass('is-active'); // Change active panel to the nav menu\n }\n }\n\n function showNav (e) {\n if ($('.nav-toggle').hasClass('is-active')) return hideNav(e);\n $('html').addClass('is-clipped--nav');\n $('.nav-toggle').addClass('is-active');\n $('.nav-container').addClass('is-active');\n $('html').on('click', hideNav);\n e.stopPropagation();\n }\n\n function hideNav (e) {\n $('.nav-toggle').removeClass('is-active');\n $('.nav-container').removeClass('is-active');\n $('html').removeClass('is-clipped--nav');\n $('html').off('click', hideNav);\n e.stopPropagation();\n }\n\n function scrollItemToMidpoint (el) {\n var $nav = $('.nav-container nav');\n var $panel = $('.nav-container [data-panel=menu]');\n var rect = $panel[0].getBoundingClientRect();\n var effectiveHeight = rect.height;\n if ($nav.css(\"position\") === 'sticky') effectiveHeight -= rect.top - parseFloat($nav.css(\"top\"));\n\n var elementHeight = el[0].getBoundingClientRect().height;\n if ((el.offset().top + elementHeight) > effectiveHeight) {\n // If you must scroll to see the TOC element, then move TOC so that the element\n // is displayed about the middle of the TOC.\n $panel.scrollTop(Math.max(0, (elementHeight - effectiveHeight) * 0.5 + el.offset().top));\n } else {\n // Else, just leave the user on the initial TOC (at the top) with the element highlighted.\n $panel.scrollTop(0);\n }\n }\n\n //Filter article titles in TOC using text input\n function filterNavTitles(){\n let input = $('#filter_titles').val().toLowerCase();\n let title_match=false;\n if(input==='' ){\n $('#clear_filter, .no-results-container').hide();\n $(\".nav-menu > .nav-list > .nav-item\").addClass('is-active');\n $('.nav-menu > .nav-list >.nav-item .nav-item').has('.nav-item-toggle').removeClass('is-active');\n $('.nav-item').each(function() {\n if ($(this).css('display') === 'none') {\n $(this).css('display', '');\n }\n });\n return;\n } \n $('#clear_filter').show();\n let articles = $('.nav-link , .nav-menu .nav-text');\n articles.parent().hide();\n articles.each(function() {\n let article = $(this);\n let title = article.text().toLowerCase();\n if (title.includes(input)) {\n title_match=true;\n $('.no-results-container').hide();\n article.parent().show();\n article.parent().has('.nav-item-toggle').removeClass('is-active');\n showAncestors(article.parent());\n showDescendants(article.parent());\n }\n });\n if(!title_match){\n $('.no-results-container').show();\n }\n }\n\n function showAncestors(item){\n let parent = item.parents('.nav-item');\n parent.each(function() {\n $(this).show();\n $(this).has('.nav-item-toggle').addClass('is-active');\n });\n }\n\n function showDescendants(item) {\n let children = item.find('.nav-item');\n children.each(function() {\n $(this).show();\n $(this).has('.nav-item-toggle').removeClass('is-active');\n });\n }\n\n return {\n init: init,\n activateCurrentPath: activateCurrentPath,\n scrollItemToMidpoint: scrollItemToMidpoint\n };\n})();\nnavigation.init();\n"],"names":["navigation","activateCurrentPath","navItem","ancestor","parent","hasClass","prop","addClass","handlePageClick","e","stopPropagation","$","contains","target","length","closeVersionPicker","toggleClass","showNav","hideNav","on","removeClass","off","scrollItemToMidpoint","el","$nav","$panel","rect","getBoundingClientRect","effectiveHeight","height","elementHeight","css","top","parseFloat","offset","scrollTop","Math","max","filterNavTitles","let","input","val","toLowerCase","title_match","articles","hide","has","each","this","show","article","text","includes","parents","find","location","href","click","init","$navContainer","$navToggle","$menuPanel","eq","$referenceNav","$addTo","next","$start","$temp","appendTo","$currentPageItem","$currentPanel","activatePanel","dataset","panel","document","which","detail","preventDefault"],"mappings":"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"}