{"version":3,"sources":["02-molecules/navigation/main-menu/main-menu.js"],"names":["$","Drupal","behaviors","mainMenu","attach","context","$mainNav","$menu","$menuWrapper","$mainMenuState","$menuButton","$body","$menuHeight","height","$headerHeight","$isStickyClass","once","smartmenus","collapsibleBehavior","length","change","checked","hide","slideDown","css","window","scrollTo","toggleClass","show","slideUp","attr","keydown","e","which","prop","bind","click","scroll","scrollTop","addClass","removeClass","jQuery"],"mappings":"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","sourcesContent":["(function mainMenuScript($, Drupal) {\n 'use strict';\n\n Drupal.behaviors.mainMenu = {\n attach(context, settings) {\n var $mainNav = $('.main-nav', context);\n var $menu = $('.main-menu', context);\n var $menuWrapper = $('.main-nav__inner', context);\n var $mainMenuState = $('#main-menu-state', context);\n var $menuButton = $('.main-menu-btn', context);\n var $body = $('body', context);\n var $menuHeight = $('.header__bottom', context).height();\n var $headerHeight= $('.header__inner', context).height() - $menuHeight;\n var $isStickyClass = \"is-sticky-menu\";\n\n // Fire Smartmenus.\n $menu.once().smartmenus({collapsibleBehavior: 'link'});\n\n // SmartMenus mobile menu toggle button.\n if ($mainMenuState.length) {\n // Animate mobile menu.\n $mainMenuState.change(function(e) {\n if (this.checked) {\n // TODO: Use jqueryUI instead for nicer animation? Need to install module/library.\n $menuWrapper.hide().slideDown(250, function() { $menu.css('display', ''); });\n // Scroll to top of page.\n window.scrollTo(0, 0);\n }\n else {\n $mainNav.toggleClass('is-open');\n // TODO: Use jqueryUI instead for nicer animation? Need to install module/library.\n $menuWrapper.show().slideUp(250, function() { $menu.css('display', ''); });\n }\n });\n // Make burger button tabbable.\n $menuButton.attr('tabIndex', '0').once().keydown(function(e){\n if (e.which == 13) { // Enter key pressed\n if ($mainMenuState.prop('checked')) {\n $mainMenuState.prop('checked', false);\n // TODO: Use jqueryUI instead for nicer animation? Need to install module/library.\n $menuWrapper.show().slideUp(250, function() { $menu.css('display', ''); });\n }\n else {\n $mainNav.toggleClass('is-open');\n $mainMenuState.prop('checked', true);\n // TODO: Use jqueryUI instead for nicer animation? Need to install module/library.\n $menuWrapper.hide().slideDown(250, function() { $menu.css('display', ''); });\n }\n // Scroll to top of page.\n window.scrollTo(0, 0);\n return false;\n }\n });\n // Hide mobile menu beforeunload.\n $(window).bind('beforeunload unload', function() {\n if ($mainMenuState[0].checked) {\n $mainMenuState[0].click();\n }\n });\n }\n\n // Scroll and fix nav to top of page.\n $(window).scroll(function() {\n if( $(this).scrollTop() > $headerHeight ) {\n $body.addClass($isStickyClass);\n } else {\n $body.removeClass($isStickyClass);\n }\n });\n },\n };\n}(jQuery, Drupal));\n"],"file":"main-menu.js"}