{"version":3,"sources":["js/theme.js"],"names":["$","subMenuPositioning","window","width","each","index","subMenu","attr","inViewportHorizontal","fn","this","offset","left","outerWidth","scrollLeft","document","ready","$mainNav","$navToggle","$navToggleParent","parent","$searchFlyout","$searchToggle","$breadcrumbFirstElement","find","insertBefore","click","event","newNavState","preventDefault","toggleClass","label","expanded","hidden","text","on","$menuLink","target","closest","linkLevel","linkMenuId","$activeSubMenu","concat","hasClass","parents","subMenuHidden","newFlyoutState","goToSearchResults","parameters","location","href","children","_","element","$element","parentWidth","css","elementHeight","outerHeight","$elementParents","map","__","parentElement","get","reduce","a","b","Math","min","height","e","keyCode","val","resize","scroll","scrollTop","fadeIn","fadeOut","animate","jQuery"],"mappings":"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","file":"js\\theme.min.js","sourcesContent":["/* global jQuery */\r\nvoid (function themeStart($) {\r\n\t'use strict';\r\n\r\n\tconst desktopBreakpoint = 883;\r\n\r\n\t$.fn.inViewportHorizontal = function inViewportHorizontal() {\r\n\t\tconst elementPadding = 1.5;\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\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 = $('#main-nav');\r\n\t\tconst $navToggle = $('#navToggle');\r\n\t\tconst $navToggleParent = $('#navToggle').parent();\r\n\t\tconst $searchFlyout = $('#dnn-search');\r\n\t\tconst $searchToggle = $('#searchToggle');\r\n\t\tconst $breadcrumb = $(\"span[itemprop='breadcrumb']\");\r\n\t\tconst $breadcrumbFirstElement = $breadcrumb.find(\r\n\t\t\t$(\"span[itemprop='itemListElement']:first-child\")\r\n\t\t);\r\n\r\n\t\t$(\r\n\t\t\t\"\"\r\n\t\t).insertBefore($breadcrumbFirstElement);\r\n\r\n\t\tsubMenuPositioning();\r\n\r\n\t\t// When clicking the main nav toggle button...\r\n\t\t$navToggle.click((event) => {\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\t$navToggleParent.toggleClass('main-nav-toggle__toggled');\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$navToggle.find('.toggle-text').text('Close');\r\n\t\t\t} else {\r\n\t\t\t\tnewNavState = {\r\n\t\t\t\t\tlabel: '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$navToggle.find('.toggle-text').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\r\n\t\t\t$searchToggle.attr({\r\n\t\t\t\t'aria-label': 'Show Search',\r\n\t\t\t\t'aria-expanded': false,\r\n\t\t\t});\r\n\t\t\t$searchFlyout.attr({\r\n\t\t\t\t'aria-hidden': true,\r\n\t\t\t});\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// When clicking the search toggle button...\r\n\t\t$searchToggle.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 searchIsHidden = $searchFlyout.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 newFlyoutState;\r\n\t\t\tif (searchIsHidden) {\r\n\t\t\t\tnewFlyoutState = {\r\n\t\t\t\t\tlabel: 'Hide Search',\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} else {\r\n\t\t\t\tnewFlyoutState = {\r\n\t\t\t\t\tlabel: 'Show Search',\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}\r\n\r\n\t\t\t// Updating new main nav state\r\n\t\t\t$searchToggle.attr({\r\n\t\t\t\t'aria-label': newFlyoutState.label,\r\n\t\t\t\t'aria-expanded': newFlyoutState.expanded,\r\n\t\t\t});\r\n\t\t\t$searchFlyout.attr({\r\n\t\t\t\t'aria-hidden': newFlyoutState.hidden,\r\n\t\t\t});\r\n\r\n\t\t\t// Hide all open menus\r\n\t\t\t$navToggle.attr({\r\n\t\t\t\t'aria-label': 'Show Menu',\r\n\t\t\t\t'aria-expanded': false,\r\n\t\t\t});\r\n\t\t\t$mainNav.attr({ 'aria-hidden': true });\r\n\t\t});\r\n\r\n\t\t// set of global variables for mega menu content\r\n\t\tconst mobileNavBreakpoint = 899;\r\n\r\n\t\t// If window > mobile breakpoint: make sub menus aware of their parents' widths\r\n\t\t$(\".menu-item__mega:not([data-level='0'])\").on(\r\n\t\t\t'mouseenter',\r\n\t\t\tfunction onHover() {\r\n\t\t\t\tif ($(window).width() < mobileNavBreakpoint) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$(this)\r\n\t\t\t\t\t.children('.menu__mega')\r\n\t\t\t\t\t.each((_, element) => {\r\n\t\t\t\t\t\tconst $element = $(element);\r\n\t\t\t\t\t\tconst parentWidth = $element\r\n\t\t\t\t\t\t\t.closest('.menu-item__mega')\r\n\t\t\t\t\t\t\t.outerWidth();\r\n\t\t\t\t\t\t$element.css('left', parentWidth - 1);\r\n\r\n\t\t\t\t\t\tconst elementHeight = $element.outerHeight();\r\n\t\t\t\t\t\tconst $elementParents = $element.parents('.menu__mega');\r\n\t\t\t\t\t\tconst parentHeights = $elementParents\r\n\t\t\t\t\t\t\t.map((__, parentElement) =>\r\n\t\t\t\t\t\t\t\t$(parentElement).outerHeight()\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.get();\r\n\t\t\t\t\t\tconst minParentHeight = parentHeights.reduce((a, b) =>\r\n\t\t\t\t\t\t\tMath.min(a, b)\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tif (elementHeight > minParentHeight) {\r\n\t\t\t\t\t\t\t$elementParents.height(elementHeight);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\t// Addsearch functionality\r\n\t\tfunction goToSearchResults(parameters) {\r\n\t\t\twindow.location.href = `/SearchResults?addsearch=${parameters}`;\r\n\t\t}\r\n\r\n\t\tconst enterKey = 13;\r\n\t\t$('.addsearch').on('keyup', function addSearchKeyUp(e) {\r\n\t\t\tif (e.keyCode === enterKey) {\r\n\t\t\t\tgoToSearchResults($(this).val());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$('.addsearch-button').on('click', function clickAddSearchButton(e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tgoToSearchResults(\r\n\t\t\t\t$(this).parent('.addsearch-container').find('.addsearch').val()\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\t$(window).resize(() => {\r\n\t\t\tsubMenuPositioning();\r\n\t\t});\r\n\r\n\t\t// fade in back-to-top\r\n\t\tconst backToTopThresholdPx = 500;\r\n\t\t$(window).scroll(() => {\r\n\t\t\tif ($(window).scrollTop() > backToTopThresholdPx) {\r\n\t\t\t\t$('.back-to-top').fadeIn();\r\n\t\t\t} else {\r\n\t\t\t\t$('.back-to-top').fadeOut();\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 scrollMs = 800;\r\n\t\t$('.back-to-top').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\tscrollMs\r\n\t\t\t);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t});\r\n})(jQuery);\r\n"]}