{"version":3,"sources":["03-organisms/site/site-header/site-header.js"],"names":["$","Drupal","breakpoint","behaviors","headerShuffle","attach","context","registerResizeFunction","headerShuffleSm","$infoFor","$search","$mainMenu","$utilityMenu","$ctaMenu","$headerRight","valueInArray","insertBefore","insertAfter","appendTo","headerTabbing","$logo","$menuButton","$searchForm","$searchField","$searchSubmit","once","keydown","e","which","shiftKey","focus","click","find","on","preventDefault","toggleClass","jQuery"],"mappings":"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","sourcesContent":["/**\n *\n * This file uses functions provided by the advo_breakpoint module.\n * It must be installed and enabled to work.\n *\n */\n(function ($, Drupal, breakpoint) {\n\n 'use strict';\n\n // Shuffle search and main menu at small widths\n Drupal.behaviors.headerShuffle = {\n attach: function (context) {\n var headerShuffleSm = function () {\n\n var $infoFor = $('.header .info-for', context);\n var $search = $('.header .search', context);\n var $mainMenu = $('.header .main-nav__nav', context);\n var $utilityMenu = $('.header .utility-menu', context);\n var $ctaMenu = $('.header .cta-menu', context);\n var $headerRight = $('.header__right', context);\n\n // Put header elements into collapsed menu.\n if (breakpoint.valueInArray(['xsmall', 'small', 'medium'])) {\n $search.insertBefore($mainMenu);\n $ctaMenu.insertAfter($mainMenu);\n $utilityMenu.insertAfter($ctaMenu);\n $infoFor.insertAfter($utilityMenu);\n }\n // Put them back where they belong in large+ layouts.\n else {\n $ctaMenu.appendTo($headerRight);\n $search.insertBefore($ctaMenu);\n $utilityMenu.insertBefore($search);\n $infoFor.insertBefore($utilityMenu);\n }\n };\n\n // trigger functon when hitting a new breakpoint\n breakpoint.registerResizeFunction('headerShuffleSm', headerShuffleSm);\n\n },\n };\n\n // Header tabbing\n Drupal.behaviors.headerTabbing = {\n attach: function (context) {\n\n var $logo = $('.branding__logo a', context);\n var $menuButton = $('.main-menu-btn', context);\n var $searchForm = $('.search form', context);\n var $searchField = $('.search input[type=\"search\"]', context);\n var $searchSubmit = $('.search input[type=\"submit\"]', context);\n\n // Xsmall - Medium\n if (breakpoint.valueInArray(['xsmall', 'small', 'medium'])) {\n \n // Tabbing...\n\n // Menu button\n $menuButton.once().keydown(function(e) {\n // e.preventDefault();\n // 9 is tab key\n if (e.which === 9) {\n // e.preventDefault();\n // If holding shift key...\n if (e.shiftKey === true) {\n $logo.once().focus();\n }\n else {\n $searchField.once().focus();\n }\n }\n // 13 is Enter key\n if (e.which === 13) {\n $menuButton.click().focus();\n }\n });\n $('.main-nav.is-open').find($menuButton).once().keydown(function(e) {\n if (e.which === 9) {\n if (e.shiftKey === true) {\n // Close up the menu and go back to the logo.\n $menuButton.click();\n }\n }\n });\n\n // Search field\n $searchField.once().keydown(function(e) {\n // 9 is tab key\n if (e.which === 9) {\n // e.preventDefault();\n // If holding shift key...\n if (e.shiftKey === true) {\n $menuButton.once().focus();\n }\n else {\n $searchSubmit.once().focus();\n }\n }\n });\n\n // When Info For menu top-level last link is tabbed out of, hide the menu.\n $('.info-for__menu__item:last-child a', context).once().on('blur', function() {\n $menuButton.click();\n $('#main-content', context).focus();\n });\n\n }\n // Large+\n else {\n $searchField.once().keydown(function(e) {\n // 9 is tab key.\n // Reverse.\n if (e.which === 9 && e.shiftKey === true) {\n e.preventDefault();\n // Toggle the form and move focus there.\n $searchForm.toggleClass('open');\n // And put focus on the next focusable spot.\n $('.utility-menu-list__item:last-child a', context).focus();\n }\n // Forward.\n if (e.which === 9 && e.shiftKey !== true) {\n e.preventDefault();\n // Toggle the form and move focus there.\n $searchForm.toggleClass('open');\n // And put focus on the next focusable spot.\n $('.cta-menu-list__item:first-child a', context).focus();\n }\n });\n\n }\n\n },\n };\n\n})(jQuery, Drupal, breakpoint);\n\n"],"file":"site-header.js"}