{"version":3,"file":"alert-script.min.js","names":["root","document","getElementsByTagName","getScrollbarWidth","outer","createElement","style","visibility","overflow","body","appendChild","inner","scrollbarWidth","offsetWidth","parentNode","removeChild","applyScrollTopMargin","el","documentElement","setProperty","offsetHeight","setCookie","name","value","expDays","date","Date","setTime","getTime","expires","toUTCString","cookie","getCookie","nameEQ","ca","split","i","length","c","charAt","substring","indexOf","waitForElExistence","selector","Promise","resolve","querySelector","observer","MutationObserver","mutations","disconnect","observe","childList","subtree","classList","add","domBodyExists","window","addEventListener","then","elm","siteBody","siteHeader","siteAlertWrap","siteAlert","querySelectorAll","sitePeakChildHeight","bodyElStyle","cssVarHeaderHeight","siteAlertCookie","siteAlertCookieArr","siteHeaderHeight","hasChildNodes","siteAlertPositionDisplay","removeEventListener","applyHeaderCSS","removeProperty","top","getComputedStyle","pageYOffset","position","forEach","item","getElementById","remove","alert","id","requestAnimationFrame"],"sources":["alert-script.js"],"mappings":"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","sourcesContent":["// Dynamically add has-js class immediately\r\nvar root = document.getElementsByTagName('html')[0];\r\nroot.classList.add('has-js');\r\n\r\n// Dynamically set scrollbar width css variable\r\nfunction getScrollbarWidth() {\r\n var outer = document.createElement('div');\r\n outer.style.visibility = 'hidden';\r\n outer.style.overflow = 'scroll';\r\n document.body.appendChild(outer);\r\n var inner = document.createElement('div');\r\n outer.appendChild(inner);\r\n var scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);\r\n outer.parentNode.removeChild(outer);\r\n return scrollbarWidth + 'px';\r\n}\r\n\r\n// Once body exists run functions\r\n(function domBodyExists() {\r\n if (document.body) {\r\n\r\n // Set dynamic scrollbar width variable\r\n root.classList.add('js-scrollbar-width-set');\r\n document.documentElement.style.setProperty('--scrollbar-width', getScrollbarWidth());\r\n\r\n // Update scrollbar width after resize\r\n window.addEventListener('resize', function () {\r\n document.documentElement.style.setProperty('--scrollbar-width', getScrollbarWidth());\r\n });\r\n\r\n waitForElExistence('.site-header__alert-wrap').then((elm) => {\r\n\r\n // Top level alert\r\n const siteBody = document.querySelector('.l-body');\r\n const siteHeader = document.querySelector('.site-header');\r\n const siteAlertWrap = document.querySelector('.site-header__alert-wrap');\r\n const siteAlert = document.querySelectorAll('.site-header__alert-wrap .site-header__alert');\r\n let sitePeakChildHeight;\r\n let bodyElStyle;\r\n let cssVarHeaderHeight;\r\n let siteAlertCookie;\r\n let siteAlertCookieArr;\r\n let siteHeaderHeight;\r\n\r\n if (siteAlertWrap.hasChildNodes()) {\r\n\r\n // Alert cookie related\r\n if (siteAlert) {\r\n siteAlertCookie = getCookie('siteAlertHidden');\r\n siteAlertCookieArr = (siteAlertCookie !== null) ? siteAlertCookie.split(',') : null;\r\n\r\n if (siteAlertCookieArr === null || siteAlertCookieArr.length !== siteAlert.length) {\r\n root.classList.add('js-alert-visible');\r\n\r\n if (siteAlertCookieArr !== null) {\r\n siteAlertCookieArr.forEach(item => {\r\n document.getElementById(item).remove();\r\n });\r\n }\r\n\r\n siteAlertPositionDisplay();\r\n } else {\r\n siteAlertWrap.remove();\r\n }\r\n\r\n // Remove alert on close button\r\n siteAlert.forEach(alert => {\r\n alert.addEventListener('hidden.bs.collapse', () => {\r\n const alertAmount = document.querySelectorAll('.site-header__alert-wrap .site-header__alert');\r\n\r\n if (alertAmount.length === 0) {\r\n root.classList.remove('js-alert-visible');\r\n document.documentElement.style.setProperty('--site-header-offset', '');\r\n siteHeader.style.top = '';\r\n } else {\r\n siteAlertPositionDisplay();\r\n }\r\n\r\n let alertCSV = (getCookie('siteAlertHidden') !== null) ? getCookie('siteAlertHidden') + ',' + alert.id : alert.id;\r\n setCookie(`siteAlertHidden`, alertCSV, 2);\r\n });\r\n });\r\n }\r\n\r\n function siteAlertPositionDisplay() {\r\n window.removeEventListener('scroll', applyHeaderCSS, false);\r\n document.documentElement.style.removeProperty('--site-header-offset');\r\n siteHeader.style.top = '';\r\n window.removeEventListener('scroll', applyHeaderCSS, false);\r\n sitePeakChildHeight = siteAlertWrap.offsetHeight;\r\n siteHeaderHeight = siteHeader.offsetHeight;\r\n bodyElStyle = getComputedStyle(siteBody);\r\n cssVarHeaderHeight = (sitePeakChildHeight + siteHeaderHeight);\r\n\r\n document.documentElement.style.setProperty('--site-header-offset', cssVarHeaderHeight + 'px');\r\n if (window.pageYOffset >= sitePeakChildHeight) {\r\n siteHeader.style.position = 'fixed';\r\n siteHeader.style.top = '';\r\n } else {\r\n siteHeader.style.position = '';\r\n siteHeader.style.top = sitePeakChildHeight + 'px';\r\n }\r\n\r\n window.addEventListener('scroll', applyHeaderCSS, false);\r\n }\r\n\r\n function applyHeaderCSS() {\r\n if (window.pageYOffset >= sitePeakChildHeight) {\r\n siteHeader.style.position = 'fixed';\r\n siteHeader.style.top = '';\r\n } else {\r\n siteHeader.style.position = '';\r\n siteHeader.style.top = sitePeakChildHeight + 'px';\r\n }\r\n }\r\n\r\n // Update header alert inline css after resize\r\n window.addEventListener('resize', function () {\r\n if (siteAlertWrap && siteAlertCookieArr === null || siteAlertCookieArr.length > 0) {\r\n siteAlertPositionDisplay();\r\n }\r\n });\r\n // Update header alert inline css after assets/fonts finish loading\r\n window.addEventListener('load', () => {\r\n if (siteAlertWrap && siteAlertCookieArr === null || siteAlertCookieArr.length > 0) {\r\n siteAlertPositionDisplay();\r\n }\r\n })\r\n }\r\n })\r\n } else {\r\n window.requestAnimationFrame(domBodyExists);\r\n }\r\n})();\r\n\r\n// Dynamically set scrolltop margin css variable\r\nfunction applyScrollTopMargin(el) {\r\n document.documentElement.style.setProperty('--scroll-margin-top', el.offsetHeight + 20 + 'px');\r\n}\r\n\r\nwindow.addEventListener('load', function () {\r\n var siteHeader = document.querySelector('.site-header.l-header');\r\n applyScrollTopMargin(siteHeader);\r\n});\r\n\r\n// Global cookie handling\r\nfunction setCookie(name, value, expDays) {\r\n let date = new Date();\r\n date.setTime(date.getTime() + (expDays * 24 * 60 * 60 * 1000));\r\n const expires = \"expires=\" + date.toUTCString();\r\n document.cookie = name + \"=\" + value + \"; \" + expires + \"; path=/\";\r\n}\r\n\r\nfunction getCookie(name) {\r\n const nameEQ = name + '=';\r\n const ca = document.cookie.split(';');\r\n\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1, c.length);\r\n }\r\n\r\n if (c.indexOf(nameEQ) === 0) {\r\n return c.substring(nameEQ.length, c.length);\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction waitForElExistence(selector) {\r\n return new Promise(resolve => {\r\n if (document.querySelector(selector)) {\r\n return resolve(document.querySelector(selector));\r\n }\r\n\r\n const observer = new MutationObserver(mutations => {\r\n if (document.querySelector(selector)) {\r\n resolve(document.querySelector(selector));\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true\r\n });\r\n });\r\n}\r\n"]}