{"version":3,"file":"customMenu.min.js","names":["document","addEventListener","body","querySelectorAll","forEach","item","expandLink","querySelector","backLink","classList","add","remove","overlay","createElement","id","appendChild","toggleSearchDialog","getElementById","toggleResponsiveMenu","bodyOverlay","closeMenuAndSearch","toggle","window","checkSubmenuPosition","elements","element","submenuLevel","parseInt","dataset","level","submenu","offsetLeftValue","offsetLeft","parentElement","contains","getOffsetLeft","offsetParent","offsetWidth","clientWidth"],"sources":["customMenu.js"],"sourcesContent":["/*jshint esversion: 6 */\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n\tconst body = document.body;\r\n\r\n\t// Add event listeners to expandable nav items\r\n\tconst navExpandItems = [...document.querySelectorAll('.nav-expand')];\r\n\r\n\tnavExpandItems.forEach(item => {\r\n\t\tconst expandLink = item.querySelector('.nav-expand-link');\r\n\t\tconst backLink = item.querySelector('.nav-back-link');\r\n\r\n\t\texpandLink.addEventListener('click', () => item.classList.add('active'));\r\n\t\tbackLink.addEventListener('click', () => item.classList.remove('active'));\r\n\t});\r\n\r\n\t// Setup and append overlay\r\n\tconst overlay = document.createElement('div');\r\n\toverlay.id = 'body-overlay';\r\n\tbody.appendChild(overlay);\r\n\r\n\t// Select elements for search and menu toggling\r\n\tconst toggleSearchDialog = document.getElementById('search-toggle');\r\n\tconst toggleResponsiveMenu = document.getElementById('nav-mobile-toggle');\r\n\tconst bodyOverlay = document.getElementById('body-overlay');\r\n\r\n\t// Toggle responsive menu\r\n\ttoggleResponsiveMenu.addEventListener('click', () => {\r\n\t\tbody.classList.toggle('nav-is-toggled');\r\n\t\tbody.classList.remove('search-is-toggled');\r\n\t});\r\n\r\n\t// Toggle search dialog\r\n\ttoggleSearchDialog.addEventListener('click', () => {\r\n\t\tbody.classList.toggle('search-is-toggled');\r\n\t\tbody.classList.remove('nav-is-toggled');\r\n\t});\r\n\r\n\tfunction closeMenuAndSearch() {\r\n\t\tbody.classList.remove('nav-is-toggled', 'search-is-toggled');\r\n\t}\r\n\t \r\n\t// Hide menu, search, and overlay when the overlay is clicked\r\n\tbodyOverlay.addEventListener('click', closeMenuAndSearch);\r\n\t\r\n\t// Close menu and search on window resize\r\n\twindow.addEventListener('resize', closeMenuAndSearch);\r\n\t\r\n\t// Function to calculate left offset for submenus\r\n\tconst getOffsetLeft = (element) => {\r\n\t\tlet offsetLeft = 0;\r\n\t\twhile (element.parentElement) {\r\n\t\t\telement = element.parentElement;\r\n\t\t\tif (element.classList.contains(\"hasChildren\") && element.offsetLeft !== 0) {\r\n\t\t\t\toffsetLeft = element.offsetLeft;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn offsetLeft;\r\n\t};\r\n\r\n\t// Function to check submenu position and handle underflow\r\n\tconst checkSubmenuPosition = (elements) => {\r\n\t\tconst hasChildren = document.querySelectorAll(elements);\r\n\r\n\t\thasChildren.forEach(element => {\r\n\t\t\telement.addEventListener('mouseenter', () => {\r\n\t\t\t\tlet submenuLevel = parseInt(element.dataset.level, 10);\r\n\t\t\t\tconst submenu = element.querySelector('ul');\r\n\t\t\t\tconst offsetLeftValue = getOffsetLeft(element);\r\n\t\t\t\tlet offsetParent = element.offsetLeft || offsetLeftValue;\r\n\t\t\t\tif (!element.offsetLeft) submenuLevel += 1;\r\n\r\n\t\t\t\tconst offsetLeft = submenu.offsetLeft + offsetParent;\r\n\t\t\t\tconst submenuWidth = submenu.offsetWidth;\r\n\t\t\t\tconst docWidth = body.clientWidth;\r\n\r\n\t\t\t\tif (offsetLeft + (submenuWidth * submenuLevel) >= docWidth) {\r\n\t\t\t\t\tsubmenu.parentElement.classList.add('underfold-end');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsubmenu.parentElement.classList.remove('underfold-end');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\telement.addEventListener('mouseleave', () => {\r\n\t\t\t\tconst submenu = element.querySelector('ul');\r\n\t\t\t\tsubmenu.parentElement.classList.remove('underfold-end');\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\t// Call the function initially and on window resize\r\n\tcheckSubmenuPosition('#nav-desktop-secondary li.hasChildren');\r\n\twindow.addEventListener('resize', () => checkSubmenuPosition('#nav-desktop-secondary li.hasChildren'));\r\n});"],"mappings":"AACAA,SAASC,iBAAiB,oBAAoB,KAC7C,MAAMC,EAAOF,SAASE,KAGC,IAAIF,SAASG,iBAAiB,gBAEtCC,SAAQC,IACtB,MAAMC,EAAaD,EAAKE,cAAc,oBAChCC,EAAWH,EAAKE,cAAc,kBAEpCD,EAAWL,iBAAiB,SAAS,IAAMI,EAAKI,UAAUC,IAAI,YAC9DF,EAASP,iBAAiB,SAAS,IAAMI,EAAKI,UAAUE,OAAO,WAAU,IAI1E,MAAMC,EAAUZ,SAASa,cAAc,OACvCD,EAAQE,GAAK,eACbZ,EAAKa,YAAYH,GAGjB,MAAMI,EAAqBhB,SAASiB,eAAe,iBAC7CC,EAAuBlB,SAASiB,eAAe,qBAC/CE,EAAcnB,SAASiB,eAAe,gBAc5C,SAASG,IACRlB,EAAKO,UAAUE,OAAO,iBAAkB,oBACzC,CAbAO,EAAqBjB,iBAAiB,SAAS,KAC9CC,EAAKO,UAAUY,OAAO,kBACtBnB,EAAKO,UAAUE,OAAO,oBAAoB,IAI3CK,EAAmBf,iBAAiB,SAAS,KAC5CC,EAAKO,UAAUY,OAAO,qBACtBnB,EAAKO,UAAUE,OAAO,iBAAiB,IAQxCQ,EAAYlB,iBAAiB,QAASmB,GAGtCE,OAAOrB,iBAAiB,SAAUmB,GAGlC,MAaMG,EAAwBC,IACTxB,SAASG,iBAAiBqB,GAElCpB,SAAQqB,IACnBA,EAAQxB,iBAAiB,cAAc,KACtC,IAAIyB,EAAeC,SAASF,EAAQG,QAAQC,MAAO,IACnD,MAAMC,EAAUL,EAAQlB,cAAc,MAChCwB,EApBa,CAACN,IACtB,IAAIO,EAAa,EACjB,KAAOP,EAAQQ,eAEd,IADAR,EAAUA,EAAQQ,eACNxB,UAAUyB,SAAS,gBAAyC,IAAvBT,EAAQO,WAAkB,CAC1EA,EAAaP,EAAQO,WACrB,KACD,CAED,OAAOA,CAAU,EAWSG,CAAcV,GACtC,IAAIW,EAAeX,EAAQO,YAAcD,EACpCN,EAAQO,aAAYN,GAAgB,GAEtBI,EAAQE,WAAaI,EACnBN,EAAQO,YAGIX,GAFhBxB,EAAKoC,YAGrBR,EAAQG,cAAcxB,UAAUC,IAAI,iBAEpCoB,EAAQG,cAAcxB,UAAUE,OAAO,gBACxC,IAGDc,EAAQxB,iBAAiB,cAAc,KACtBwB,EAAQlB,cAAc,MAC9B0B,cAAcxB,UAAUE,OAAO,gBAAgB,GACtD,GACD,EAIHY,EAAqB,yCACrBD,OAAOrB,iBAAiB,UAAU,IAAMsB,EAAqB,0CAAyC"}