{"version":3,"sources":["js/theme.js"],"names":["$","subMenu","window","width","each","index","attr","document","ready","fn","inViewportHorizontal","this","offset","left","outerWidth","scrollLeft","stickyComponent","elementOffset","element","top","pageYOffset","onscroll","elementTop","addClass","removeClass","$navToggle","event","preventDefault","$navToggleText","find","subMenuPositioning","newNavState","label","$mainNav","expanded","hidden","text","aria-label","aria-expanded","data-current-level","hasClass","on","$menuLink","target","closest","linkMenuId","linkLevel","$activeSubMenu","concat","parents","scrollTop","aria-hidden","subMenuHidden","click","animate","resize","scroll","jQuery"],"mappings":"CACM,SAAAA,gBAmCFA,SAAEC,IA/BsB,KAmCxBD,EALDE,QAAAC,SAMAH,EAAA,yBAAAI,KAAA,SAAAC,EAAAJ,GACDD,EAAAC,GAAAK,KALG,eAOFC,EAAAA,GAAUC,0BArCZR,EAACS,GAADC,qBAAA,WAUC,OARoBV,EAAEW,MAAMC,SAASC,OAChBb,EAAEW,MAAMG,YAAW,IACnBd,EAAEE,QAAQa,aAQ3BC,EAAAA,QAAkBb,SAItBH,EAAAS,GAAAO,gBAAmBC,WAHnB,IAAMC,EAAUlB,EAAEW,MAMhBO,EAFgBlB,EAAAW,MAAAC,SAECO,IADPC,GAEVlB,OAFDmB,SAEO,WACNH,OAAAA,aAAoBI,EACpBJ,EAAAK,SAAA,oBAVHL,EAAAM,YAAA,sBAgCCxB,EAAAA,UAAEQ,MAAUQ,WAGZS,IAAAA,EAAczB,EAAA,YACb0B,EAAMC,EAAAA,cAPDC,EAAiBH,EAAWI,KAAK,gBAEvCC,IAWC9B,EAAA,UAAI+B,kBAEHA,EAAAA,GAAAA,QAAc,SAAAL,GAAA,IAOdK,EANCC,EAAAA,iBADD,SAAAC,EAAA3B,KAAA,gBASC4B,EAAQ,CACRC,MAAAA,YAHaD,UAAd,EAKAN,QAAAA,GAPAA,EAAeQ,KAAK,WAWrBX,EAAWnB,CACV0B,MAAA,YACAE,UAAA,EAFeC,QAAhB,GAKCP,EAAAQ,KAAeL,SAKhBE,EAAQ3B,KAAR,CAES+B,aAAAN,EAAeC,MAAjBM,gBAFPP,EAAAG,WANAD,EAAS3B,KAAK,CAYf2B,cAAYF,EAASI,OACpBI,qBAAA,IAKAN,EAXEJ,KAAK,8BAaPvB,KAAIN,CAAE0B,eAAcc,MARrBP,EAASQ,GAAG,QAAS,aAAc,SAACf,GAGnC,IAAMgB,EAAY1C,EAAE0B,EAAMiB,QAAQC,QAAQ,cAgB1CX,EAAAS,EAAcpC,KAAA,cAAEuC,EAAAH,EAAsBI,KAAAA,aAnBOC,EAqB7C/C,EAAA,oBAAAgD,OAAAH,EAAA,OACAE,EAAAA,EAAAA,QAAezC,SAAK,oBACnBoB,EAAAC,iBADmBmB,EAApB9C,EAAA0B,EAAAiB,QAtBDM,QA2BA,cAfI3C,KAAK,eAoBN4C,EAAW,SAAAH,EAAAzC,KAAA,eAKb2B,EARD3B,KAAA,CAAAiC,qBAAAO,IAWC9C,EAAEM,KAAF,CACA6C,eAAMC,MAOPpD,EAFD,cAAAqD,MAAA,WAIA,OAACrD,EAACE,aAAFoD,QACC,CACCtD,UAAE,GALe,MAGnB,IA7I6B,IAkIxBA,EAAEE,QAAQgD,YACblD,EAAE,gBAAgBuB,SAAS,WAE3BvB,EAAE,gBAAgBwB,YAAY,aAIhCxB,EAAEE,QAAQqD,OAAO,WAChBzB,MAGD9B,EAAEE,QAAQsD,OAAO,WA7IY,IA8IxBxD,EAAEE,QAAQgD,YACblD,EAAE,gBAAgBuB,SAAS,WAE3BvB,EAAE,gBAAgBwB,YAAY,aApJ3B,CAuJHiC","file":"js\\theme.min.js","sourcesContent":["/* global jQuery */\r\nvoid (function themeStart($) {\r\n\t'use strict';\r\n\r\n\tconst backToTopThresholdPx = 300;\r\n\tconst $desktopBreakpoint = 1200;\r\n\r\n\t$.fn.inViewportHorizontal = function inViewportHorizontal() {\r\n\t\tconst elementPadding = 1;\r\n\t\tconst elementLeft = $(this).offset().left;\r\n\t\tconst elementWidth = $(this).outerWidth(true);\r\n\t\tconst viewportLeft = $(window).scrollLeft();\r\n\r\n\t\treturn (\r\n\t\t\telementLeft + elementWidth * elementPadding <=\r\n\t\t\tviewportLeft + $(window).width()\r\n\t\t);\r\n\t};\r\n\r\n\t$.fn.stickyComponent = function () {\r\n\t\tconst element = $(this);\r\n\t\tconst elementOffset = $(this).offset();\r\n\t\tconst scrollThreshold = 20;\r\n\t\tconst elementTop = elementOffset.top + scrollThreshold;\r\n\t\twindow.onscroll = function () {\r\n\t\t\tif (window.pageYOffset >= elementTop) {\r\n\t\t\t\telement.addClass('sticky-component');\r\n\t\t\t} else {\r\n\t\t\t\telement.removeClass('sticky-component');\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\tfunction subMenuPositioning() {\r\n\t\tif ($(window).width() > $desktopBreakpoint) {\r\n\t\t\t$('ul.menu.menu__submenu').each((index, subMenu) => {\r\n\t\t\t\t$(subMenu).attr(\r\n\t\t\t\t\t'data-visible',\r\n\t\t\t\t\t$(subMenu).inViewportHorizontal()\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t$(document).ready(() => {\r\n\t\t// Global variables\r\n\t\tconst $mainNav = $('#siteNav');\r\n\t\tconst $navToggle = $('#navToggle');\r\n\t\tconst $navToggleText = $navToggle.find('.toggle-text');\r\n\r\n\t\tsubMenuPositioning();\r\n\t\t$('header').stickyComponent();\r\n\r\n\t\t// When clicking the main nav toggle button...\r\n\t\t$navToggle.on('click', (event) => {\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\t// Find initial nav state\r\n\t\t\tconst navIsHidden = $mainNav.attr('aria-hidden') === 'true';\r\n\r\n\t\t\t// Find what the current state of nav should be\r\n\t\t\tlet newNavState;\r\n\t\t\tif (navIsHidden) {\r\n\t\t\t\tnewNavState = {\r\n\t\t\t\t\tlabel: 'Hide Menu',\r\n\t\t\t\t\texpanded: true,\r\n\t\t\t\t\thidden: false,\r\n\t\t\t\t};\r\n\t\t\t\t$navToggleText.text('Close');\r\n\t\t\t} else {\r\n\t\t\t\tnewNavState = {\r\n\t\t\t\t\tlabel: 'Show Menu',\r\n\t\t\t\t\texpanded: false,\r\n\t\t\t\t\thidden: true,\r\n\t\t\t\t};\r\n\t\t\t\t$navToggleText.text('Menu');\r\n\t\t\t}\r\n\r\n\t\t\t// Updating new main nav state\r\n\t\t\t$navToggle.attr({\r\n\t\t\t\t'aria-label': newNavState.label,\r\n\t\t\t\t'aria-expanded': newNavState.expanded,\r\n\t\t\t});\r\n\t\t\t$mainNav.attr({\r\n\t\t\t\t'aria-hidden': newNavState.hidden,\r\n\t\t\t\t'data-current-level': 0,\r\n\t\t\t});\r\n\r\n\t\t\t// Hide all open menus\r\n\t\t\t$mainNav\r\n\t\t\t\t.find('.menu[aria-hidden=\"false\"]')\r\n\t\t\t\t.attr({ 'aria-hidden': true });\r\n\t\t});\r\n\r\n\t\t// When clicking a link in the main nav...\r\n\t\t$mainNav.on('click', '.menu-link', (event) => {\r\n\t\t\t// Find the clicked link, menu level of the clicked link, and the menu that the link is linking to\r\n\r\n\t\t\tconst $menuLink = $(event.target).closest('.menu-link');\r\n\t\t\tlet linkLevel = $menuLink.attr('data-level');\r\n\t\t\tconst linkMenuId = $menuLink.attr('data-page');\r\n\t\t\tconst $activeSubMenu = $(`.menu[data-page=\"${linkMenuId}\"]`);\r\n\r\n\t\t\tif ($(event.target).hasClass('submenu-toggle')) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tlinkLevel = $(event.target)\r\n\t\t\t\t\t.parents('.menu-item')\r\n\t\t\t\t\t.attr('data-level');\r\n\t\t\t}\r\n\r\n\t\t\t// Find the initial nav state of the linked menu\r\n\t\t\tconst subMenuHidden = $activeSubMenu.attr('aria-hidden') === 'true';\r\n\r\n\t\t\t// Update the active menu level of the main nav\r\n\t\t\t$mainNav.attr({ 'data-current-level': linkLevel });\r\n\r\n\t\t\t// Update the active submenu's visibility\r\n\t\t\t$activeSubMenu.attr({\r\n\t\t\t\t'aria-hidden': !subMenuHidden,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// scroll body to 0px on click\r\n\t\tconst scrollAnimationSpeed = 800;\r\n\t\t$('#backToTop').click(() => {\r\n\t\t\t$('body,html').animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollTop: 0,\r\n\t\t\t\t},\r\n\t\t\t\tscrollAnimationSpeed\r\n\t\t\t);\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\tif ($(window).scrollTop() > backToTopThresholdPx) {\r\n\t\t\t$('.back-to-top').addClass('visible');\r\n\t\t} else {\r\n\t\t\t$('.back-to-top').removeClass('visible');\r\n\t\t}\r\n\t});\r\n\r\n\t$(window).resize(() => {\r\n\t\tsubMenuPositioning();\r\n\t});\r\n\r\n\t$(window).scroll(() => {\r\n\t\tif ($(window).scrollTop() > backToTopThresholdPx) {\r\n\t\t\t$('.back-to-top').addClass('visible');\r\n\t\t} else {\r\n\t\t\t$('.back-to-top').removeClass('visible');\r\n\t\t}\r\n\t});\r\n})(jQuery);\r\n"]}