{"version":3,"sources":["_801-jumplinks-navigation.js"],"names":["e","t","n","r","s","o","u","a","require","i","Error","f","exports","call","length","1","module","jumplinkContainer","document","querySelector","scrollLink","querySelectorAll","sectionStatus","let","copyLinkButtonClicked","copyLinkIcon","mainMenu","clientHeight","style","top","forEach","item","linkHash","hash","replace","toLowerCase","addScrollMargin","mediaQuery","window","matchMedia","headerHeight","mobileAdjuster","blockItem","getElementById","setProperty","matches","highlightNavigation","addEventListener","location","el","scrollIntoView","behavior","block","duration","setTimeout","copySuccessMessage","getAttribute","copyUrl","fadeOut","createElement","setAttribute","event","pageX","pageY","getElementsByTagName","append","innerHTML","remove","navigator","clipboard","writeText","x","preventDefault","classList","toggle","section","targetBlock","target","fromTop","scrollY","activeFrame","innerHeight","headerTransition","jumpLinknav","innerWidth","link","activeSection","offsetTop","offsetHeight","links","add","stickyNav","MutationObserver","mutations","mutation","attributeName","observe","attributes","attributeFilter"],"mappings":"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","file":"801-jumplinks-navigation.min.js","sourcesContent":["const jumplinkContainer = document.querySelector('.jumplinks-801');\r\nconst scrollLink = document.querySelectorAll('.jumplinks-801 a[href^=\"#\"]');\r\nconst sectionStatus = document.querySelector('.jumplinks-801__status');\r\nlet copyLinkButtonClicked = false;\r\nlet copyLinkIcon = document.querySelector('.jumplinks-801 .copy-link-icon');\r\nlet mainMenu = document.querySelector('header.header__position');\r\nlet headerHeight = document.querySelector('.header-wrapper').clientHeight + \"px\";\r\nlet headerTransition = document.querySelector('header.header__position').style.top;\r\n\r\nscrollLink.forEach(item => {\r\n let linkHash = item.hash.replace(/#/g, \"\").toLowerCase();\r\n item.hash = linkHash;\r\n});\r\n\r\nconst addScrollMargin = () => {\r\n const mediaQuery = window.matchMedia('(min-width: 992px)')\r\n let headerHeight = document.querySelector('.header-wrapper').clientHeight + \"px\";\r\n let mobileAdjuster = document.querySelector('.header-wrapper').clientHeight + document.querySelector('.jumplinks-801__status').clientHeight + \"px\";\r\n scrollLink.forEach(item => {\r\n let linkHash = item.hash.replace(/#/g, \"\");\r\n let blockItem = document.getElementById(linkHash);\r\n if (blockItem == null || blockItem.length == 0) {\r\n return false;\r\n }\r\n else {\r\n blockItem.style.setProperty(\"scroll-margin-top\", `${mobileAdjuster}`);\r\n // Check if the media query is true\r\n if (mediaQuery.matches) {\r\n blockItem.style.setProperty(\"scroll-margin-top\", `${headerHeight}`);\r\n }\r\n }\r\n });\r\n}\r\n\r\n//Start of function for checking and scrolling to has in url\r\nwindow.addEventListener('DOMContentLoaded', function () {\r\n\r\n if (window.location.hash == '') {\r\n return false;\r\n }\r\n\r\n let el = document.querySelector(window.location.hash);\r\n\r\n if (el !== null) {\r\n\r\n el.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n duration: 800 // how long to animate\r\n });\r\n\r\n setTimeout(function () { // patch animation\r\n el.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n duration: 200 // how long to patch\r\n });\r\n }, 1200); // how long to wait before patching\r\n\r\n }\r\n\r\n}, false);\r\n\r\n//End of function for checking and scrolling to has in url\r\n\r\n\r\n//Start of function clicking to copy url\r\n\r\nif (copyLinkIcon != null) {\r\n copyLinkIcon.addEventListener('click', (event) => {\r\n\r\n let copySuccessMessage = copyLinkIcon.getAttribute('data-copy-url-success');\r\n let copyUrl = copyLinkIcon.getAttribute('data-canonical-link');\r\n if (!copyLinkButtonClicked) {\r\n copyLinkButtonClicked = true;\r\n let fadeOut = document.createElement(\"div\");\r\n fadeOut.setAttribute(\"class\", \"fadeout-copy-confirmation\");\r\n fadeOut.setAttribute(\"style\", \"position: absolute; user-select: none; background-color: #fff; padding: 2px 4px; font-size: 1.2rem; border: 1px solid black; z-index: 999; transition: 1.5s; left: \" + event.pageX + \"px; top: \" + event.pageY + \"px;\");\r\n\r\n document.getElementsByTagName(\"body\")[0].append(fadeOut);\r\n fadeOut.innerHTML = copySuccessMessage;\r\n window.setTimeout(function () {\r\n fadeOut.setAttribute('style', 'opacity: 0');\r\n window.setTimeout(function () {\r\n fadeOut.remove();\r\n copyLinkButtonClicked = false;\r\n }, 1500);\r\n }, 500);\r\n }\r\n navigator.clipboard.writeText(copyUrl);\r\n });\r\n}\r\n\r\n//End of function clicking to copy url\r\n\r\n\r\n//Start of function clicking mobile status indicator to toggle open class\r\nsectionStatus.addEventListener('click', (x) => {\r\n x.preventDefault;\r\n sectionStatus.classList.toggle('open');\r\n});\r\n//End of function clicking mobile status indicator to toggle open class\r\n\r\n//Start of function clicking any jumplink and scrolling to its ID\r\nscrollLink.forEach(item => {\r\n let section = document.querySelector(item.hash);\r\n item.addEventListener('click', (e) => {\r\n if (section == null || section.length == 0) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n else {\r\n let targetBlock = document.querySelector(e.target.hash);\r\n e.preventDefault();\r\n targetBlock.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n duration: 800 // how long to animate\r\n\r\n });\r\n\r\n setTimeout(function () { // patch animation\r\n targetBlock.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n duration: 200 // how long to patch\r\n });\r\n }, 600); // how long to wait before patching\r\n sectionStatus.classList.remove('open');\r\n }\r\n });\r\n\r\n});\r\n\r\n//End of function clicking any jumplink and scrolling to its ID\r\n\r\n//Start of function highlighting the active jumplink based on a section ID in view\r\nconst highlightNavigation = () => {\r\n let fromTop = window.scrollY - 50;\r\n let activeFrame = window.innerHeight * .3;\r\n let headerTransition = document.querySelector('header.header__position').style.top;\r\n let jumpLinknav = document.querySelector('.jumplinks-801');\r\n\r\n if (headerTransition > -1 + \"px\" && window.innerWidth >= 992) {\r\n jumpLinknav.style.setProperty('top', '-100px');\r\n }\r\n\r\n scrollLink.forEach(link => {\r\n\r\n let section = document.querySelector(link.hash);\r\n let activeSection = document.querySelector('.jumplinks-801 a.active').innerHTML;\r\n\r\n if (section == null || section.length == 0) {\r\n return false;\r\n }\r\n else if (\r\n section.offsetTop <= fromTop + activeFrame &&\r\n section.offsetTop + section.offsetHeight > fromTop + activeFrame\r\n ) {\r\n scrollLink.forEach(links => {\r\n links.classList.remove(\"active\");\r\n })\r\n link.classList.add(\"active\");\r\n sectionStatus.innerHTML = activeSection;\r\n }\r\n });\r\n};\r\n//End of function highlighting the active jumplink based on a section ID in view\r\n\r\n//Start of function to change the 801 to a different layout when if class is present\r\nconst stickyNav = () => {\r\n if (window.scrollY > jumplinkContainer.offsetTop) {\r\n jumplinkContainer.classList.add('sticky-jumplinks');\r\n } else {\r\n jumplinkContainer.classList.remove('sticky-jumplinks');\r\n }\r\n}\r\n\r\n//END of function to change the 801 to a different layout when if class is present\r\n\r\n\r\n//Start of function that looks for any update to the header styling to affix the jumplink container to bottom\r\nconst observer = new MutationObserver(function (mutations) {\r\n mutations.forEach(function (mutation) {\r\n if (mutation.attributeName === 'style') {\r\n let headerHeight = document.querySelector('.header-wrapper').clientHeight + \"px\";\r\n let headerTransition = document.querySelector('header.header__position').style.top;\r\n jumplinkContainer.style.setProperty('top', `calc(${headerHeight} + (${headerTransition}) - 1px)`);\r\n }\r\n });\r\n});\r\n\r\n// Notify me of style changes\r\nlet observerConfig = {\r\n attributes: true,\r\n attributeFilter: [\"style\"]\r\n};\r\n\r\n//END of function that looks for any update to the header styling to affix the jumplink container to bottom\r\n\r\n\r\nobserver.observe(mainMenu, observerConfig);\r\n\r\n\r\nwindow.addEventListener('scroll', function (event) {\r\n highlightNavigation();\r\n stickyNav();\r\n});\r\n\r\nwindow.addEventListener('resize', function (event) {\r\n addScrollMargin();\r\n stickyNav();\r\n highlightNavigation();\r\n sectionStatus.classList.remove('open');\r\n});\r\n\r\nwindow.addEventListener('DOMContentLoaded', function (event) { \r\n stickyNav();\r\n highlightNavigation();\r\n}); \r\naddScrollMargin();"]}