{"version":3,"file":"TEKsystems.SitecoreXP.HeaderNav.js","names":["define","helper","HeaderNav","toggle","header","panelBtn","search","closeBtn","Init","this","document","querySelector","querySelectorAll","clicked","closePanel","searchOpen","langOpen","panelBtnClose","generateListItem","onClosed","setupCloseSubMenu","closeMobileMenuClickOutside","addEventListener","e","body","classList","contains","target","className","click","closeSubMenu","forEach","el","setAttribute","remove","length","add","close","open","isNotNullOrUndefined","collapseEl","btn","btnSearch","panelLanguage","isBtnAriaExpanded","getAttribute","searchForm","hasForm","focus","btnLanguage","searchPanel","setTimeout","removeAttribute","returnFocus","nav","listItem","createElement","parentNode","insertBefore","appendChild"],"sources":["site/TEKsystems.SitecoreXP.HeaderNav.js"],"mappings":"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","sourcesContent":["/**\r\n * Created by broturne on 1/4/16.\r\n */\r\ndefine(['site/Components/Shared/Helper'], function (helper) {\r\n var HeaderNav = {\r\n toggle: null,\r\n header: null,\r\n panelBtn: null,\r\n search: null,\r\n closeBtn: null,\r\n Init: function () {\r\n //declare vars\r\n this.header = document.querySelector('.score-header');\r\n this.toggle = document.querySelector('.navbar-toggle');\r\n this.panelBtn = document.querySelectorAll('.tek-collapsible-panel-button'); //once code is modified this will need to change\r\n this.search = document.querySelectorAll('.tek-collapsible-panel-button');\r\n this.closeBtn = document.querySelectorAll('.panel-collapse .btn--close');\r\n\r\n //add/remove class to score-header on open menu\r\n this.clicked();\r\n this.closePanel();\r\n this.searchOpen();\r\n this.langOpen();\r\n this.panelBtnClose();\r\n this.generateListItem();\r\n this.onClosed();\r\n this.setupCloseSubMenu();\r\n this.closeMobileMenuClickOutside();\r\n },\r\n closeMobileMenuClickOutside: function () {\r\n document.querySelector('.navbar-megamenu')?.addEventListener('click', function (e) {\r\n if (document.body.classList.contains(\"menu-open\")) {\r\n if (HeaderNav.toggle.classList.contains(\"open\")) {\r\n if (e.target.className === document.querySelector('.navbar-megamenu').className ||\r\n e.target.className === document.querySelector('.navbar-header').className\r\n ) {\r\n HeaderNav.toggle.click();\r\n }\r\n }\r\n }\r\n });\r\n },\r\n closeSubMenu: function () {\r\n document.querySelectorAll(\".navbar-megamenu .score-megamenu-dropdown.open > a\").forEach(function (el) {\r\n el.setAttribute(\"aria-expanded\", false);\r\n });\r\n document.querySelectorAll(\".navbar-megamenu .score-megamenu-dropdown.open\").forEach(function (el) {\r\n el.classList.remove(\"open\");\r\n });\r\n },\r\n setupCloseSubMenu: function () {\r\n document.querySelectorAll(\".navbar-megamenu .menu-back\").forEach(function (el) {\r\n el.addEventListener(\"click\", () => {\r\n HeaderNav.closeSubMenu();\r\n });\r\n });\r\n\r\n document.querySelectorAll(\".navbar-megamenu.score-megamenu .score-megamenu-dropdown\").forEach(function (el) {\r\n if (el.querySelectorAll(\".active\").length > 0) {\r\n el.classList.add(\"active\");\r\n }\r\n });\r\n },\r\n clicked: function () {\r\n this.toggle?.addEventListener('click', function () {\r\n if (!this.classList.contains('open')) {\r\n HeaderNav.open();\r\n } else {\r\n HeaderNav.close();\r\n }\r\n });\r\n\r\n document.querySelectorAll(\"[data-toggle='collapse']:not(.navbar-toggle)\").forEach(function (el) {\r\n el.addEventListener(\"click\", () => {\r\n HeaderNav.close();\r\n });\r\n });\r\n },\r\n open: function () {\r\n this.toggle.classList.add('open');\r\n this.header.classList.add('nav-open');\r\n this.header.classList.remove('nav-closed');\r\n document.body.classList.add(\"menu-open\");\r\n },\r\n close: function () {\r\n this.toggle.classList.remove('open');\r\n this.header.classList.remove('nav-open');\r\n document.body.classList.remove(\"menu-open\");\r\n },\r\n onClosed: function () {\r\n this.header?.classList.add(\"nav-closed\");\r\n\r\n const header = document.querySelector('.score-header');\r\n const hasHeader = helper.isNotNullOrUndefined(header);\r\n if (hasHeader) {\r\n header.addEventListener('transitionend', () => {\r\n if (!this.header.classList.contains(\"nav-open\")) {\r\n this.header.classList.add(\"nav-closed\");\r\n }\r\n });\r\n }\r\n },\r\n closePanel: function () {\r\n this.panelBtn.forEach(function (el) {\r\n el.addEventListener(\"click\", () =>{\r\n document.querySelectorAll('.collapse').forEach(function (collapseEl) {\r\n collapseEl.classList.remove('show');\r\n });\r\n if (!el.classList.contains('return-focus')) {\r\n HeaderNav.panelBtn.forEach(function (btn) {\r\n btn.classList.remove('return-focus');\r\n });\r\n el.classList.add('return-focus');\r\n } else {\r\n HeaderNav.panelBtn.forEach(function (btn) {\r\n btn.classList.remove('return-focus');\r\n });\r\n }\r\n });\r\n });\r\n },\r\n searchOpen: function () {\r\n const btnSearch = document.querySelector(\".btn--search\");\r\n const panelLanguage = document.querySelector('header > .score-stripe.score-stripe--collapsed:not(.score-stripe--search) .panel-collapse.container.collapse');\r\n btnSearch?.addEventListener(\"click\", () => {\r\n panelLanguage.classList.remove(\"in\");\r\n const isBtnAriaExpanded = btnSearch.getAttribute('aria-expanded') === 'true';\r\n const searchForm = document.querySelector('.tek-searchbox .form-control')\r\n const hasForm = helper.isNotNullOrUndefined(searchForm);\r\n if (isBtnAriaExpanded && hasForm) {\r\n searchForm.focus();\r\n } \r\n });\r\n\r\n },\r\n langOpen: function () {\r\n const btnLanguage = document.querySelector('.btn--language');\r\n const searchPanel = document.querySelector('.score-stripe--search .panel-collapse.container.collapse'); \r\n btnLanguage?.addEventListener(\"click\", () => {\r\n searchPanel.classList.remove(\"in\");\r\n setTimeout(function () {\r\n const isBtnAriaExpanded = btnLanguage.getAttribute('aria-expanded') === 'true';\r\n if (isBtnAriaExpanded) {\r\n btnLanguage.setAttribute('tabindex', '-1');\r\n } else {\r\n btnLanguage.removeAttribute('tabindex');\r\n btnLanguage.focus();\r\n }\r\n }, 100);\r\n });\r\n },\r\n panelBtnClose: function () {\r\n this.closeBtn.forEach(function (el) {\r\n el.addEventListener(\"click\", () => {\r\n const returnFocus = document.querySelector('.return-focus');\r\n const hasReturnFocus = helper.isNotNullOrUndefined(returnFocus);\r\n if (hasReturnFocus) {\r\n returnFocus.focus();\r\n returnFocus.classList.remove('return-focus');\r\n }\r\n });\r\n });\r\n },\r\n generateListItem: function () {\r\n const nav = this.header?.querySelector('.navbar-nav > .nav');\r\n const hasNav = helper.isNotNullOrUndefined(nav);\r\n if (hasNav) {\r\n const listItem = document.createElement('li');\r\n listItem.className = 'nav-1';\r\n nav.parentNode.insertBefore(listItem, nav);\r\n listItem.appendChild(nav);\r\n }\r\n }\r\n };\r\n\r\n return HeaderNav;\r\n});\r\n\r\n"]}