{"version":3,"file":"main-menu.js","names":["document","$","Drupal","once","behaviors","mainMenu","attach","context","click","toggleClass","setMenuColor","urlLocation","location","attr","area","split","replace","$tagMatch","filter","reg","RegExp","test","text","parent","addClass","$nav","$bgColor","css","$navLinks","$subNavLinks","toggleAria","$tag","ariaAttribute","ariaClose","removeClass","next","behaviorsMainMenu","$targets","each","$target","$subMenu","on","e","hasClass","$notTargets","not","preventDefault","jQuery"],"sources":["src/patterns/components/main-menu/main-menu.js"],"sourcesContent":["'use strict';\n\n!((document, $, Drupal, once) => {\n Drupal.behaviors.mainMenu = {\n //Navicon click behavior\n attach: function (context) {\n $('.main-menu__navicon', context)\n .once()\n .click(function () {\n $(this).toggleClass('active');\n $('.main-menu').toggleClass('active');\n });\n\n /**\n * Finds context of menu click and sets menu color\n * @param {Object} $menuLinks - All menu links.\n * @returns {void}\n */\n function setMenuColor() {\n //Find current location & menu area/directory\n const urlLocation = $(location).attr('href');\n let area = urlLocation.split('/')[3];\n area = area.replace('-', ' ');\n if (area !== '') {\n //Find matching main-menu tab\n const $tagMatch = $('a.level-1').filter(function () {\n const reg = new RegExp(area, 'i');\n return reg.test($(this).text());\n });\n $tagMatch.parent().addClass('active');\n const $nav = $('.main-menu', context);\n const $bgColor = $tagMatch.parent().css('background-color');\n $nav.css('border-bottom-color', $bgColor);\n }\n }\n\n const $navLinks = $('.level-1', context);\n const $subNavLinks = $('.level-2', context);\n\n setMenuColor($navLinks);\n\n /**\n * Toggles aria attribute values true/false.\n * @param {Object} $tag - Tag.\n * @param {string} ariaAttribute - Aria attribute.\n * @returns {void}\n */\n function toggleAria($tag, ariaAttribute) {\n if ($tag.attr(ariaAttribute) === 'true') {\n $tag.attr(ariaAttribute, 'false');\n } else {\n $tag.attr(ariaAttribute, 'true');\n }\n }\n\n /**\n * Toggles aria attribute values when closing\n * @param {Object} $tag - Tag.\n * @returns {void}\n */\n function ariaClose($tag) {\n $tag.parent().removeClass('active');\n if ($tag.attr('aria-haspopup') === 'true') {\n $tag.next().removeClass('expanded');\n $tag.attr('aria-expanded', 'false');\n $tag\n .next()\n .attr('aria-expanded', 'false')\n .attr('aria-hidden', 'true');\n }\n }\n\n /**\n * Bind open/close action to menu.\n * @param {Object} $targets - Menu link targets.\n * @returns {void}\n */\n function behaviorsMainMenu($targets) {\n $targets.once().each(function () {\n if ($(this).attr('aria-haspopup') === 'true') {\n const $target = $(this);\n const $subMenu = $target.next();\n\n $target.on('click', function (e) {\n $subMenu.toggleClass('expanded');\n if (!$(this).parent().hasClass('active')) {\n $(this).parent().toggleClass('active');\n }\n toggleAria($subMenu, 'aria-hidden');\n toggleAria($subMenu, 'aria-expanded');\n\n let $notTargets = $targets.not($target);\n\n //Close all other menu lists & change to\n // appropriate ARIA parameters\n $notTargets.each(function () {\n ariaClose($(this));\n });\n\n toggleAria($target, 'aria-expanded');\n\n e.preventDefault();\n return false;\n });\n } else {\n //Toggle Menu level-1 colors\n $(this).on('click', function () {\n $(this).parent().toggleClass('active');\n\n let $notTargets = $targets.not($(this));\n\n $notTargets.each(function () {\n ariaClose($(this));\n });\n });\n }\n });\n }\n behaviorsMainMenu($navLinks);\n behaviorsMainMenu($subNavLinks);\n }\n };\n})(document, jQuery, Drupal, once);\n"],"mappings":"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","ignoreList":[]}