{"version":3,"sources":["js/theme.js"],"names":["$","subMenuPositioning","window","width","each","index","subMenu","attr","inViewportHorizontal","toggleLinks","toggleButton","toggleElement","control","document","querySelector","concat","element","onclick","event","newElementState","preventDefault","getAttribute","expanded","hidden","setAttribute","fn","this","offset","left","outerWidth","scrollLeft","categoryLoader","setInterval","readyState","clearInterval","quickLinksLoader","ready","$mainNav","$navToggle","$navToggleText","find","$profileToggle","$profileFlyout","on","newNavState","label","tabIndex","text","tabindex","$menuLink","target","closest","linkLevel","linkMenuId","$activeSubMenu","hasClass","parents","subMenuHidden","click","animate","scrollTop","addClass","removeClass","newProfileFlyoutState","resize","scroll","mainContentPosition","position","top","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 backToTopThresholdPx = 300;\r\n\tconst $desktopBreakpoint = 1280;\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\tfunction toggleLinks(toggleButton, toggleElement) {\r\n\t\tconst control = document.querySelector(\r\n\t\t\t`[aria-controls=${toggleElement}]`,\r\n\t\t);\r\n\t\tconst element = document.querySelector(\r\n\t\t\t`[aria-controlledby=${toggleButton}]`,\r\n\t\t);\r\n\r\n\t\tcontrol.onclick = (event) => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst elementIsHidden =\r\n\t\t\t\telement.getAttribute('aria-hidden') === 'true';\r\n\r\n\t\t\t// Find what the current state of the element should be\r\n\t\t\tlet newElementState;\r\n\t\t\tif (elementIsHidden) {\r\n\t\t\t\tnewElementState = {\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\tnewElementState = {\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\t\t\t// Updating new element state\r\n\t\t\tcontrol.setAttribute('aria-expanded', newElementState.expanded);\r\n\t\t\telement.setAttribute('aria-hidden', newElementState.hidden);\r\n\t\t};\r\n\t}\r\n\r\n\tconst delay = 300;\r\n\tconst categoryLoader = setInterval(() => {\r\n\t\tif (document.readyState !== 'complete') return;\r\n\t\tclearInterval(categoryLoader);\r\n\t\ttoggleLinks('categoryToggle', 'categoryList');\r\n\t}, delay);\r\n\r\n\tconst quickLinksLoader = setInterval(() => {\r\n\t\tif (document.readyState !== 'complete') return;\r\n\t\tclearInterval(quickLinksLoader);\r\n\t\ttoggleLinks('quicklinks-toggle', 'quicklinks-nav');\r\n\t}, delay);\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\t\tconst $profileToggle = $('.profile--flyout-button');\r\n\t\tconst $profileFlyout = $('.profile--flyout');\r\n\r\n\t\t// Add presentation role to all paging tables\r\n\t\t$('table.PagingTable, table:has(tr.DNN_Reports_Grid_Row)').attr(\r\n\t\t\t'role',\r\n\t\t\t'presentation',\r\n\t\t);\r\n\r\n\t\t// Add tab index to prevent focus on hidden nav\r\n\t\t$mainNav\r\n\t\t\t.find('a, button, input, select, textarea')\r\n\t\t\t.attr('tabindex', '-1');\r\n\r\n\t\tsubMenuPositioning();\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\ttabIndex: null,\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\ttabIndex: -1,\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\ttabindex: newNavState.tabIndex,\r\n\t\t\t});\r\n\r\n\t\t\t$mainNav\r\n\t\t\t\t.find('a, button, input, select, textarea')\r\n\t\t\t\t.attr('tabindex', newNavState.tabIndex);\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\r\n\t\t// When clicking the profile toggle button...\r\n\t\t$profileToggle.on('click', (event) => {\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\t// Find initial flyout state\r\n\t\t\tconst profileFlyoutIsHidden =\r\n\t\t\t\t$profileFlyout.attr('aria-hidden') === 'true';\r\n\r\n\t\t\t// Find what the current state of flyout should be\r\n\t\t\tlet newProfileFlyoutState;\r\n\t\t\tif (profileFlyoutIsHidden) {\r\n\t\t\t\tnewProfileFlyoutState = {\r\n\t\t\t\t\tlabel: 'Hide Profile Flyout',\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\tnewProfileFlyoutState = {\r\n\t\t\t\t\tlabel: 'Show Profile Flyout',\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 search flyout state\r\n\t\t\t$profileToggle.attr({\r\n\t\t\t\t'aria-label': newProfileFlyoutState.label,\r\n\t\t\t\t'aria-expanded': newProfileFlyoutState.expanded,\r\n\t\t\t});\r\n\t\t\t$profileFlyout.attr({\r\n\t\t\t\t'aria-hidden': newProfileFlyoutState.hidden,\r\n\t\t\t});\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\r\n\t// scroll body to 0px on click\r\n\tconst scrollAnimationSpeed = 800;\r\n\t$('#back-to-top').click(() => {\r\n\t\t$('body,html').animate(\r\n\t\t\t{\r\n\t\t\t\tscrollTop: 0,\r\n\t\t\t},\r\n\t\t\tscrollAnimationSpeed,\r\n\t\t);\r\n\t\treturn false;\r\n\t});\r\n\r\n\t$('.scroll-helper').click(() => {\r\n\t\tconst mainContent = $('.site--main');\r\n\t\tconst mainContentPosition = mainContent.position();\r\n\t\t$('html, body').animate(\r\n\t\t\t{\r\n\t\t\t\tscrollTop: mainContentPosition.top,\r\n\t\t\t},\r\n\t\t\tscrollAnimationSpeed,\r\n\t\t);\r\n\t});\r\n})(jQuery);\r\n"]}