{"version":3,"sources":["Website/Portals/_default/Skins/ASDS/js/fn__accessCssVariable.mjs","Website/Portals/_default/Skins/ASDS/js/main.mjs","Website/Portals/_default/Skins/ASDS/js/fn__debounce.mjs"],"names":["accessCssVariable","element","cssVariable","window","getComputedStyle","getPropertyValue","trim","$","navIsMobile","navWasMobile","navIsHidden","$mainNav","$navToggle","toggleNav","newNavState","attr","toString","label","expanded","hidden","aria-label","aria-expanded","aria-hidden","data-current-level","find","document","ready","length","undefined","parseInt","on","event","preventDefault","$menuLink","target","closest","linkLevel","linkMenuId","$activeSubMenu","concat","hasClass","subMenuHidden","func","wait","immediate","timeout","args","context","timestamp","result","_arguments","arguments","_this","this","later","last","Date","getTime","setTimeout","apply","now","callNow","debounce","navVariable","each","index","faq","lastQuestionId","$faq","initialOpenQuestion","$currentAnswer","css","outerHeight","$faqQuestions","$faqAnswers","$currentQuestion","currentQuestionId","currentQuestionExpanded","filter","currentMinHeight","$userToggle","$userDropdown","userPaneIsHidden","onload","cookie","includes","querySelector","style","display","jQuery"],"mappings":"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","file":"js\\main.min.js","sourcesContent":["export default function accessCssVariable(element, cssVariable) {\r\n\tif (!element[0]) {\r\n\t\treturn '';\r\n\t}\r\n\r\n\tconst cssVar = window\r\n\t\t.getComputedStyle(element[0])\r\n\t\t.getPropertyValue(cssVariable)\r\n\t\t.trim();\r\n\treturn cssVar;\r\n}\r\n","import debounce from './fn__debounce.mjs';\r\nimport accessCssVariable from './fn__accessCssVariable.mjs';\r\n\r\n/* global jQuery */\r\nvoid (function themeStart($) {\r\n\t// Global variables\r\n\tconst $mainNav = $('#mainNav');\r\n\tconst $navToggle = $('#navToggle');\r\n\tlet navIsMobile;\r\n\tlet navWasMobile;\r\n\tlet navIsHidden;\r\n\tconst mobileZIndex = 100;\r\n\tconst debounceWaitTime = 250;\r\n\r\n\tfunction toggleNav() {\r\n\t\t// Find initial nav state\r\n\t\tnavIsHidden = $mainNav.attr('aria-hidden').toString() === 'true';\r\n\r\n\t\t// Find what the current state of nav should be\r\n\t\tlet newNavState;\r\n\t\tif (navIsHidden) {\r\n\t\t\tnewNavState = {\r\n\t\t\t\tlabel: 'Hide Menu',\r\n\t\t\t\texpanded: true,\r\n\t\t\t\thidden: false,\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tnewNavState = {\r\n\t\t\t\tlabel: 'Show Menu',\r\n\t\t\t\texpanded: false,\r\n\t\t\t\thidden: true,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// Updating new main nav state\r\n\t\tnavIsHidden = !navIsHidden;\r\n\t\t$navToggle.attr({\r\n\t\t\t'aria-label': newNavState.label,\r\n\t\t\t'aria-expanded': newNavState.expanded,\r\n\t\t});\r\n\t\t$mainNav.attr({\r\n\t\t\t'aria-hidden': newNavState.hidden,\r\n\t\t\t'data-current-level': 0,\r\n\t\t});\r\n\r\n\t\t// Hide all open menus\r\n\t\t$mainNav\r\n\t\t\t.find('.menu[aria-hidden=\"false\"]')\r\n\t\t\t.attr({ 'aria-hidden': true });\r\n\t}\r\n\r\n\t// On page load...\r\n\t$(document).ready(() => {\r\n\t\tif ($mainNav.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Find initial navigation state\r\n\t\tnavIsMobile =\r\n\t\t\taccessCssVariable($mainNav, '--nav-is-mobile').toString() ===\r\n\t\t\t'true';\r\n\r\n\t\t// Fallback nav state check for browsers that don't support CSS Variables\r\n\t\tif (navIsMobile === undefined) {\r\n\t\t\tnavIsMobile =\r\n\t\t\t\tparseInt(accessCssVariable($mainNav, 'z-index'), 10) ===\r\n\t\t\t\tmobileZIndex;\r\n\t\t}\r\n\r\n\t\t// If navigation is in desktop view, make navigation accessible\r\n\t\tif (!navIsMobile) {\r\n\t\t\ttoggleNav();\r\n\t\t}\r\n\t});\r\n\r\n\t// When clicking the main nav toggle button...\r\n\t$navToggle.on('click', event => {\r\n\t\tevent.preventDefault();\r\n\r\n\t\t// Update nav state\r\n\t\tnavIsMobile = true;\r\n\t\tnavWasMobile = true;\r\n\t\ttoggleNav();\r\n\t});\r\n\r\n\t// When clicking a link in the main nav...\r\n\t$mainNav.on('click', '.menu-link', event => {\r\n\t\tif (navIsMobile) {\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\t\t\tconst $menuLink = $(event.target).closest('.menu-link');\r\n\t\t\tconst 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\t\t\tconst menuLinkIsParent = $menuLink.hasClass('menu-link__parent');\r\n\r\n\t\t\tif (menuLinkIsParent) {\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t// Find the initial nav state of the linked menu\r\n\t\t\t\tconst subMenuHidden =\r\n\t\t\t\t\t$activeSubMenu.attr('aria-hidden').toString() === 'true';\r\n\r\n\t\t\t\t// Update the active menu level of the main nav\r\n\t\t\t\t$mainNav.attr({ 'data-current-level': linkLevel });\r\n\r\n\t\t\t\t// Update the active submenu's visibility\r\n\t\t\t\t$activeSubMenu.attr({\r\n\t\t\t\t\t'aria-hidden': !subMenuHidden,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tif ($mainNav.length > 0) {\r\n\t\t// On window resize...\r\n\t\t$(window).on(\r\n\t\t\t'resize',\r\n\t\t\tdebounce(() => {\r\n\t\t\t\t// Find initial nav state\r\n\t\t\t\tnavIsHidden =\r\n\t\t\t\t\t$mainNav.attr('aria-hidden').toString() === 'true';\r\n\t\t\t\tconst navVariable = accessCssVariable(\r\n\t\t\t\t\t$mainNav,\r\n\t\t\t\t\t'--nav-is-mobile'\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// Check to see if fallback is needed, otherwise update nav state\r\n\t\t\t\tif (!navVariable) {\r\n\t\t\t\t\tnavIsMobile =\r\n\t\t\t\t\t\tparseInt(accessCssVariable($mainNav, 'z-index'), 10) ===\r\n\t\t\t\t\t\tmobileZIndex;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnavIsMobile = navVariable.toString() === 'true';\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update nav with proper state\r\n\t\t\t\tif (!navIsMobile) {\r\n\t\t\t\t\tif (navWasMobile || navIsHidden) {\r\n\t\t\t\t\t\ttoggleNav();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$mainNav\r\n\t\t\t\t\t\t.find('.menu__submenu')\r\n\t\t\t\t\t\t.attr('aria-hidden', 'false');\r\n\t\t\t\t\tnavWasMobile = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (!navWasMobile && !navIsHidden) {\r\n\t\t\t\t\t\ttoggleNav();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnavWasMobile = true;\r\n\t\t\t\t}\r\n\t\t\t}, debounceWaitTime)\r\n\t\t);\r\n\t}\r\n\r\n\t// Find FAQs on the page\r\n\tconst $faqContainers = $('.faq--question-group');\r\n\t// With each FAQ container...\r\n\t$faqContainers.each((index, faq) => {\r\n\t\tconst $faq = $(faq);\r\n\t\tlet lastQuestionId;\r\n\r\n\t\t// On page load...\r\n\t\t$(document).ready(() => {\r\n\t\t\t// Set intial height based on open answer\r\n\t\t\tconst initialOpenQuestion = $faq\r\n\t\t\t\t.find('.faq--question[aria-expanded=\"true\"]')\r\n\t\t\t\t.attr('data-question');\r\n\t\t\tconst $currentAnswer = $faq.find(\r\n\t\t\t\t`.faq--answer[data-question=${initialOpenQuestion}]`\r\n\t\t\t);\r\n\t\t\t$faq.css('min-height', $currentAnswer.outerHeight());\r\n\r\n\t\t\t// Update view state\r\n\t\t\tlastQuestionId = initialOpenQuestion;\r\n\t\t});\r\n\r\n\t\t// When clicking FAQ question...\r\n\t\t$faq.on('click', '.faq--question', event => {\r\n\t\t\t// Find question state and associated answer state\r\n\t\t\tconst $faqQuestions = $faq.find('.faq--question');\r\n\t\t\tconst $faqAnswers = $faq.find('.faq--answer');\r\n\t\t\tconst $currentQuestion = $(event.target).closest('.faq--question');\r\n\t\t\tconst currentQuestionId = $currentQuestion.attr('data-question');\r\n\t\t\tconst currentQuestionExpanded =\r\n\t\t\t\t$currentQuestion.attr('aria-expanded').toString() === 'true';\r\n\t\t\tconst $currentAnswer = $faqAnswers.filter(\r\n\t\t\t\t`[data-question=${currentQuestionId}]`\r\n\t\t\t);\r\n\t\t\tconst currentMinHeight = $currentAnswer.outerHeight();\r\n\r\n\t\t\t// Toggle questions and answers\r\n\t\t\t$faqQuestions\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t'aria-expanded': false,\r\n\t\t\t\t})\r\n\t\t\t\t.filter($currentQuestion)\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t'aria-expanded': !currentQuestionExpanded,\r\n\t\t\t\t});\r\n\t\t\t$faqAnswers\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t'aria-hidden': true,\r\n\t\t\t\t})\r\n\t\t\t\t.filter($currentAnswer)\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t'aria-hidden': currentQuestionExpanded,\r\n\t\t\t\t});\r\n\r\n\t\t\t// If the current question is the same as the last one that was clicked...\r\n\t\t\tif (lastQuestionId === currentQuestionId) {\r\n\t\t\t\t// If it's open, close it... Or if it's closed, open it\r\n\t\t\t\tif (currentQuestionExpanded) {\r\n\t\t\t\t\t$faq.css('min-height', 0);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$faq.css('min-height', currentMinHeight);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Otherwise, the current question is a new question so set it's height as the current height\r\n\t\t\t\t$faq.css('min-height', currentMinHeight);\r\n\t\t\t}\r\n\r\n\t\t\tlastQuestionId = currentQuestionId;\r\n\t\t});\r\n\t});\r\n\r\n\tconst $userToggle = $('.user--toggle');\r\n\tconst $userDropdown = $('.user--dropdown');\r\n\r\n\t// When clicking the login toggle...\r\n\t$userToggle.on('click', event => {\r\n\t\tevent.preventDefault();\r\n\r\n\t\t// Check initial state of user dropdown\r\n\t\tconst userPaneIsHidden =\r\n\t\t\t$userDropdown.attr('aria-hidden').toString() === 'true';\r\n\r\n\t\t// Update new dropdown state\r\n\t\t$userDropdown.attr({ 'aria-hidden': !userPaneIsHidden });\r\n\t\t$userToggle.attr({ 'aria-expanded': userPaneIsHidden });\r\n\t});\r\n\r\n\t// Hide Ad-Butler if AdsBlocked cookie is set\r\n\twindow.onload = function() {\r\n\t\tif (document.cookie.includes('AdsBlocked=true;')) {\r\n\t\t\tconst adBanner = document.querySelector('div.Ad-Butler');\r\n\t\t\tadBanner.style.display = 'none';\r\n\t\t}\r\n\t};\r\n})(jQuery);\r\n","// Debounce function\r\n// Lifted from underscore.js (https://github.com/jashkenas/underscore/blob/master/underscore.js)\r\n/* eslint-disable */\r\nexport default function debounce(func, wait, immediate) {\r\n\tvar timeout, args, context, timestamp, result;\r\n\r\n\tfunction later() {\r\n\t\tlet now = new Date().getTime();\r\n\t\tvar last = now - timestamp;\r\n\r\n\t\tif (last < wait && last >= 0) {\r\n\t\t\ttimeout = setTimeout(later, wait - last);\r\n\t\t} else {\r\n\t\t\ttimeout = null;\r\n\t\t\tif (!immediate) {\r\n\t\t\t\tresult = func.apply(context, args);\r\n\t\t\t\tif (!timeout) {\r\n\t\t\t\t\tcontext = args = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn () => {\r\n\t\tlet now = new Date().getTime();\r\n\t\tcontext = this;\r\n\t\targs = arguments;\r\n\t\ttimestamp = now;\r\n\t\tvar callNow = immediate && !timeout;\r\n\t\tif (!timeout) {\r\n\t\t\ttimeout = setTimeout(later, wait);\r\n\t\t}\r\n\r\n\t\tif (callNow) {\r\n\t\t\tresult = func.apply(context, args);\r\n\t\t\tcontext = args = null;\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t};\r\n}\r\n/* eslint-enable */\r\n"]}