{"version":3,"sources":["webpack:///./src/js/main-nav.js","webpack:///./src/js/tabbing.js","webpack:///./src/js/anchor-helper.js"],"names":["bMobile","headerHeight","jQuery","height","hovering","setHeaderHeight","setIt","is","$","window","scrollTop","css","init","oMenus","off","blocked","on","e","dropdown","target","closest","menu","menuStart","offset","top","menuHeight","innerHeight","Math","max","addClass","length","setTimeout","removeClass","document","ready","resize","slideDown","focus","slideUp","evt","event","key","keyCode","hasClass","container","links","i","len","getElementById","getElementsByTagName","setAttribute","className","indexOf","addEventListener","toggleFocus","touchStartFn","parentLink","querySelectorAll","menuItem","this","parentNode","classList","contains","remove","preventDefault","children","add","button","style","display","self","tagName","toLowerCase","replace","parentElement","test","navigator","userAgent","element","id","location","hash","substring","tabIndex","scrollToAnchor","href","$target","scrollTarget","animate","onClickAnchorLink","currentTarget","attr"],"mappings":"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","file":"navbar.js","sourcesContent":["var bMobile, // true if in mobile mode\n headerHeight = jQuery('#header').height(),\n hovering = false;\n\nfunction setHeaderHeight(setIt) {\n if (jQuery('.navbar-toggle').is(':visible')) {\n headerHeight = 76;\n } else {\n if ($(window).scrollTop() < headerHeight) {\n headerHeight = 130;\n } else {\n headerHeight = 110;\n }\n }\n if (hovering===false) {\n $('#header').css('height', headerHeight);\n }\n}\n\n// Initiate event handlers\nfunction init() {\n 'use strict';\n // .navbar-toggle is only visible in mobile mode\n bMobile = jQuery('.navbar-toggle').is(':visible');\n var oMenus = jQuery('.navbar-nav .dropdown'),\n nTimer;\n if (bMobile) {\n // Disable hover events for mobile\n oMenus.off();\n setHeaderHeight();\n } else {\n // $('body').on('mouseenter mouseleave', '.dropdown', e => $(e.target).dropdown('toggle'));\n var blocked = false;\n $('#header').on('mouseenter', '.dropdown', function(e) {\n hovering = true;\n setHeaderHeight();\n var dropdown = $(e.target).closest('.dropdown'),\n menu = $('.dropdown-menu', dropdown),\n menuStart = $('#main-nav').offset().top - $(window).scrollTop() + 44,\n menuHeight = menu.innerHeight();\n $('#header').css('height', Math.max(menuStart + menuHeight, headerHeight));\n dropdown.addClass('show');\n menu.addClass('show');\n if (!blocked && $('.dropdown.show').length < 1) {\n blocked = true;\n setTimeout(function() {\n dropdown.addClass('show');\n menu.addClass('show');\n }, 300);\n setTimeout(function() {\n blocked = false;\n }, 500);\n }\n });\n\n $('#header').on('mouseleave', '.dropdown', function() {\n hovering = false;\n $('#header').css('height', headerHeight);\n $('.dropdown').removeClass('show');\n $('.dropdown-menu').removeClass('show');\n });\n }\n}\n\njQuery(document).ready(function($) {\n init();\n\n $(window).resize(init);\n\n $('.open-search').on('click', function() {\n $('.search-panel').slideDown(400, function() {\n $('.search-panel').addClass('is-active');\n $('html').addClass('no-scroll');\n $('input#site-search-keyword').focus();\n });\n });\n\n $('.close-search').on('click', function() {\n $('.search-panel').removeClass('is-active');\n $('.search-panel').slideUp(400, function() {\n $('html').removeClass('no-scroll');\n });\n });\n\n $(document).on('keyup', function(e) {\n var evt = e || window.event, isEsc = false;\n if (\"key\" in evt) {\n isEsc = (evt.key==='Escape' || evt.key==='Esc');\n } else {\n isEsc = (evt.keyCode === 27);\n }\n if (isEsc) {\n if ($('.search-panel').hasClass('is-active')) {\n $('.search-panel').removeClass('is-active');\n $('.search-panel').slideUp(400, function() {\n $('html').removeClass('no-scroll');\n });\n }\n }\n });\n});\n\njQuery(window).on('scroll', function() {\n setHeaderHeight();\n});\n","/**\n * File navigation.js.\n *\n * Handles toggling the navigation menu for small screens and enables TAB key\n * navigation support for dropdown menus.\n */\n( function() {\n\tvar container, menu, links, i, len;\n\n\tcontainer = document.getElementById( 'main-nav' );\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tmenu = container.getElementsByTagName( 'ul' )[0];\n\n\t// Hide menu toggle button if menu is empty and return early.\n\tif ( 'undefined' === typeof menu ) {\n\t\tbutton.style.display = 'none';\n\t\treturn;\n\t}\n\n\tmenu.setAttribute( 'aria-expanded', 'false' );\n\tif ( -1 === menu.className.indexOf( 'nav-menu' ) ) {\n\t\tmenu.className += ' nav-menu';\n\t}\n\n\t// Get all the link elements within the menu.\n\tlinks = menu.getElementsByTagName( 'a' );\n\n\t// Each time a menu link is focused or blurred, toggle focus.\n\tfor ( i = 0, len = links.length; i < len; i++ ) {\n\t\tlinks[i].addEventListener( 'focus', toggleFocus, true );\n\t\tlinks[i].addEventListener( 'blur', toggleFocus, true );\n\t}\n\n\t$('.navbar-brand a, .open-search').on('focus', function() {\n\t\tif ($(window).scrollTop() > $('#header').height()) {\n\t\t\t$('#header').addClass('headspace--fixed').removeClass('headspace--hidden');\n\t\t}\n\t});\n\n\t/**\n\t * Sets or removes .focus class on an element.\n\t */\n\tfunction toggleFocus() {\n\t\tvar self = this;\n\n\t\t// Move up through the ancestors of the current link until we hit .nav-menu.\n\t\twhile ( -1 === self.className.indexOf( 'nav-menu' ) ) {\n\t\t\t$('#header').removeClass('headspace--hidden');\n\t\t\t// On li elements toggle the class .focus.\n\t\t\tif ( 'li' === self.tagName.toLowerCase() ) {\n\t\t\t\tif ( -1 !== self.className.indexOf( 'focus' ) ) {\n\t\t\t\t\tself.className = self.className.replace( ' focus', '' );\n\t\t\t\t} else {\n\t\t\t\t\tself.className += ' focus';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself = self.parentElement;\n\t\t}\n\t}\n\n\t/**\n\t * Toggles `focus` class to allow submenu access on tablets.\n\t */\n\t( function( container ) {\n\t\tvar touchStartFn, i,\n\t\t\tparentLink = container.querySelectorAll( '.menu-item-has-children > a, .page_item_has_children > a' );\n\n\t\tif ( 'ontouchstart' in window ) {\n\t\t\ttouchStartFn = function( e ) {\n\t\t\t\tvar menuItem = this.parentNode, i;\n\n\t\t\t\tif ( ! menuItem.classList.contains( 'focus' ) ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tfor ( i = 0; i < menuItem.parentNode.children.length; ++i ) {\n\t\t\t\t\t\tif ( menuItem === menuItem.parentNode.children[i] ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmenuItem.parentNode.children[i].classList.remove( 'focus' );\n\t\t\t\t\t}\n\t\t\t\t\tmenuItem.classList.add( 'focus' );\n\t\t\t\t} else {\n\t\t\t\t\tmenuItem.classList.remove( 'focus' );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfor ( i = 0; i < parentLink.length; ++i ) {\n\t\t\t\tparentLink[i].addEventListener( 'touchstart', touchStartFn, false );\n\t\t\t}\n\t\t}\n\t}( container ) );\n} )();\n\n/**\n * File skip-link-focus-fix.js.\n *\n * Helps with accessibility for keyboard only users.\n *\n * Learn more: https://git.io/vWdr2\n */\n(function() {\n\tvar isIe = /(trident|msie)/i.test( navigator.userAgent );\n\n\tif ( isIe && document.getElementById && window.addEventListener ) {\n\t\twindow.addEventListener( 'hashchange', function() {\n\t\t\tvar id = location.hash.substring( 1 ),\n\t\t\t\telement;\n\n\t\t\tif ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement = document.getElementById( id );\n\n\t\t\tif ( element ) {\n\t\t\t\tif ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {\n\t\t\t\t\telement.tabIndex = -1;\n\t\t\t\t}\n\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, false );\n\t}\n})();\n","var paddingTop = 0;\n\n/**\n * Check a href for an anchor. If exists, and in document, scroll to it.\n * If href argument ommited, assumes context (this) is HTML Element,\n * which will be the case when invoked by jQuery after an event\n */\nfunction scrollToAnchor(href) {\n // If our Href points to a valid, non-empty anchor, and is on the same page (e.g. #foo)\n // Legacy jQuery and IE7 may have issues: http://stackoverflow.com/q/1593174\n if (href.indexOf('#') === 0 && href.length > 1) {\n var $target = $(href);\n var scrollTarget = $target.offset().top - paddingTop;\n\n // Older browser without pushState might flicker here, as they momentarily\n // jump to the wrong position (IE < 10)\n if ($target.length) {\n var history;\n $('html, body').animate({ scrollTop: scrollTarget });\n if (history && 'pushState' in history) {\n history.pushState({}, document.title, window.location.pathname + href);\n return false;\n }\n }\n }\n}\n\nfunction onClickAnchorLink(e) {\n e.preventDefault();\n var clicked = $(e.currentTarget);\n scrollToAnchor(clicked.attr('href'));\n}\n\nfunction onDocumentReady() {\n // When our page loads, check to see if it contains and anchor\n if (window.location.hash) {\n scrollToAnchor(window.location.hash);\n }\n\n // Intercept all anchor clicks\n $('body').on('click', 'a[href^=\"#\"]', onClickAnchorLink);\n}\n\ndocument.addEventListener('DOMContentLoaded', onDocumentReady);\n"],"sourceRoot":""}