{ "version": 3, "sources": ["../Scripts/src/components/scroll-follow.ts", "../Scripts/src/components/banner-scripts.ts", "../Scripts/src/components/gdpr-banner.ts", "../Scripts/src/components/top-nav.ts", "../Scripts/src/components/main-nav.ts", "../Scripts/src/components/top-search.ts", "../Scripts/src/components/scroll-top.ts", "../Scripts/src/components/page-actions.ts", "../Scripts/src/components/tab-nav.ts", "../Scripts/src/components/faq-drawer.ts", "../Scripts/src/components/announcement.ts", "../Scripts/src/components/dialog.ts", "../Scripts/src/components/login-dialog.ts", "../Scripts/src/components/publications-dialog.ts", "../Scripts/src/components/tables.ts", "../Scripts/src/components/dropdown-form.ts", "../Scripts/src/components/subscribe-form.ts", "../Scripts/src/components/side-nav.ts", "../Scripts/src/components/sponsored-by.ts", "../Scripts/src/components/quick-links.ts"], "sourcesContent": ["class ScrollFollow {\r\n\tprivate static scrollFollowClasses = [\"pin-top\", \"follow\", \"pin-bottom\", \"fixed\"];\r\n\r\n\tsetClass(element: HTMLElement, className: string, setTop: string | null = null) {\r\n\t\tif (element.classList.contains(className)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tScrollFollow.scrollFollowClasses.filter(x => x !== className).forEach(removeClass => {\r\n\t\t\telement.classList.remove(removeClass);\r\n\t\t});\r\n\t\telement.classList.add(className);\r\n\t\telement.style.top = setTop ?? \"\";\r\n\t}\r\n\r\n\tpositionScrollFollow(element: HTMLElement) {\r\n\t\t// Run this code between FPS frames. This will make the page run smoother as updates are not happenning between FPS frames.\r\n\t\trequestAnimationFrame(() => {\r\n\t\t\t// debugger;\r\n\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\tconst elementBoundingRec = element.getBoundingClientRect();\r\n\t\t\tconst parentBoundingRec = element.parentElement?.getBoundingClientRect();\r\n\r\n\t\t\tif(!parentBoundingRec) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst elementExtendsBelowWindow = elementBoundingRec.bottom > windowHeight;\r\n\t\t\tconst parentBelowTopOfWindow = parentBoundingRec.top >= 0;\r\n\t\t\tconst topAlignment = Math.min(0, windowHeight - elementBoundingRec.height);\r\n\t\t\tconst elementAboveTopOfParent = elementBoundingRec.top < parentBoundingRec.top;\r\n\r\n\t\t\tconst pinToTop = parentBelowTopOfWindow || elementExtendsBelowWindow || elementAboveTopOfParent;\r\n\r\n\t\t\t// If the element bottom will extend below the bottom of the parent, pin it to the bottom.\r\n\t\t\tconst pinToBottom = elementBoundingRec.height + topAlignment >= parentBoundingRec.bottom;\r\n\r\n\t\t\tif (parentBoundingRec.height <= elementBoundingRec.height + 100) {\r\n\t\t\t\t// If the scroll follow is the smae height or bigger than the contents, leave it in a fixed position.\r\n\t\t\t\tthis.setClass(element, \"fixed\");\r\n\t\t\t} else if (pinToTop) {\r\n\t\t\t\t// Pin the scroll follow to the top of the parent element.\r\n\t\t\t\tthis.setClass(element, \"pin-top\");\r\n\t\t\t} else if (pinToBottom) {\r\n\t\t\t\t// Pin the scroll follow element to the bottom of the parent element.\r\n\t\t\t\tthis.setClass(element, \"pin-bottom\");\r\n\t\t\t} else {\r\n\t\t\t\t// Pin the scroll follow to a sopt on the visible window so it is following you down the page.\r\n\t\t\t\tthis.setClass(element, \"follow\", `${topAlignment}px`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinit() {\r\n\t\tconst scrollFollowElements: HTMLElement[] = Array.from(document.querySelectorAll(\".scroll-follow\"));\r\n\t\tif (scrollFollowElements.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tscrollFollowElements.forEach(scrollFollowElement => {\r\n\t\t\tthis.positionScrollFollow(scrollFollowElement);\r\n\r\n\t\t\twindow.addEventListener(\"scroll\", () => {\r\n\t\t\t\tthis.positionScrollFollow(scrollFollowElement);\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n}\r\n\r\nwindow.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst scrollFollow = new ScrollFollow();\r\n\tscrollFollow.init();\r\n});\r\n", "export class AANBanner {\r\n\r\n\tinit(): void {\r\n\t\tconst bannerElements: HTMLElement[] = [].slice.call(document.querySelectorAll(\".banner\"));\r\n\r\n\t\tif(!bannerElements?.length){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst closedBanners = JSON.parse(window.localStorage.closeBanner || \"{}\");\r\n\r\n\t\tbannerElements.forEach(banner => {\r\n\t\t\tconst bannerId = this.bannerid(banner);\r\n\t\t\tconst closeButton = banner.querySelector(\".btn-close\");\r\n\t\t\tif (!closedBanners[bannerId]) {\r\n\t\t\t\tbanner.style.display = \"block\";\r\n\t\t\t} else {\r\n\t\t\t\tbanner.style.display = \"none\";\r\n\t\t\t}\r\n\r\n\t\t\tif(closeButton) {\r\n\t\t\t\tcloseButton.addEventListener(\"click\", this.bannerClick);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate bannerid(element: HTMLElement) {\r\n\t\tconst id = element.id || element.classList[element.classList.length - 1];\r\n\r\n\t\treturn id;\r\n\t};\r\n\r\n\tprivate getBanner(element: HTMLElement | null): HTMLElement | null {\r\n\t\tif(!element) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (element.classList.contains(\"banner\")) {\r\n\t\t\treturn element;\r\n\t\t} else if (element.tagName.toLowerCase() === \"body\") {\r\n\t\t\treturn null;\r\n\t\t} else {\r\n\t\t\treturn this.getBanner(element.parentElement);\r\n\t\t}\r\n\t};\r\n\r\n\tprivate bannerClick = (event: Event) => {\r\n\t\tconst banner = this.getBanner(event.target as HTMLElement);\r\n\r\n\t\tif (!banner) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst id: string = this.bannerid(banner);\r\n\t\tconst closedBanners = JSON.parse(window.localStorage.closeBanner || \"{}\");\r\n\r\n\t\tclosedBanners[id] = \"true\";\r\n\t\tbanner.style.display = \"none\";\r\n\r\n\t\twindow.localStorage.closeBanner = JSON.stringify(closedBanners);\r\n\t};\r\n}\r\n\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst banner = new AANBanner();\r\n\r\n\tbanner.init();\r\n});\r\n", "export class AANGDPRBanner {\r\n\tprivate bannerClick(event: Event, bannerElement: HTMLElement) {\r\n\t\twindow.localStorage.gdprClosed = \"true\";\r\n\t\tbannerElement.style.display = \"none\";\r\n\t};\r\n\r\n\tinit(): void {\r\n\t\tconst bannerElement: HTMLElement | null = document.querySelector(\".gdpr-banner\");\r\n\r\n\t\tif (!bannerElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (window.localStorage.gdprClosed) {\r\n\t\t\tbannerElement.style.display = \"none\";\r\n\t\t}\r\n\r\n\t\tbannerElement.querySelector(\".btn-close\")?.addEventListener(\"click\", (event) => this.bannerClick(event, bannerElement));\r\n\t};\r\n}\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst gdprBanner = new AANGDPRBanner();\r\n\r\n\tgdprBanner.init();\r\n});\r\n", "// ToDo: Delete this when we don't need to support the old nav\r\nexport class AANTopNav {\r\n\tinit(): void {\r\n\t\tconst mainNavButtons: HTMLButtonElement[] = Array.from(document.querySelectorAll(\"#main-nav button\"));\r\n\r\n\t\tconst toggleMobileMenu = (button: HTMLButtonElement) => {\r\n\t\t\tif (button.parentElement?.classList.contains(\"submenu-open\")) {\r\n\t\t\t\tbutton.parentElement.classList.remove(\"submenu-open\");\r\n\t\t\t} else {\r\n\t\t\t\tbutton.parentElement?.classList.add(\"submenu-open\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tmainNavButtons.forEach(button => {\r\n\t\t\tbutton.addEventListener(\"click\", () => {\r\n\t\t\t\ttoggleMobileMenu(button);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst topNav = new AANTopNav();\r\n\r\n\ttopNav.init();\r\n});\r\n", "class AANMainNav {\r\n\tsetAriaExpanded(button: HTMLButtonElement, expandValue: boolean) {\r\n\t\tif (button.hasAttribute(\"aria-expanded\")) {\r\n\t\t\tbutton.setAttribute(\"aria-expanded\", expandValue.toString());\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleMobileMenu (button: HTMLButtonElement) {\r\n\t\tif (button.parentElement?.classList.contains(\"submenu-open\")) {\r\n\t\t\tbutton.parentElement.classList.remove(\"submenu-open\");\r\n\t\t\tbutton.parentElement.parentElement?.classList.remove(\"submenu-open\");\r\n\t\t\tthis.setAriaExpanded(button, false);\r\n\t\t} else {\r\n\t\t\tbutton.parentElement?.classList.add(\"submenu-open\");\r\n\t\t\tbutton.parentElement?.parentElement?.classList.add(\"submenu-open\");\r\n\t\t\tthis.setAriaExpanded(button, true);\r\n\t\t}\r\n\t};\r\n\r\n\ttoggleMobileSubnav (button: HTMLButtonElement) {\r\n\t\tif (button.parentElement?.classList.contains(\"submenu-open\")) {\r\n\t\t\tbutton.parentElement.classList.remove(\"submenu-open\");\r\n\t\t\tthis.setAriaExpanded(button, false);\r\n\t\t} else {\r\n\t\t\tbutton.parentElement?.classList.add(\"submenu-open\");\r\n\t\t\tthis.setAriaExpanded(button, true);\r\n\t\t}\r\n\r\n\t\tif (document.querySelectorAll(\".main-nav .submenu-open\").length === 0) {\r\n\t\t\tvar mainNav = document.querySelector(\".main-nav\");\r\n\t\t\tmainNav?.classList.remove(\"nested-menu-open\");\r\n\t\t}\r\n\t\telse if (!document.querySelector(\".main-nav\")?.classList.contains(\"nested-menu-open\")) {\r\n\t\t\tvar mainNav = document.querySelector(\".main-nav\");\r\n\t\t\tmainNav?.classList.add(\"nested-menu-open\");\r\n\t\t}\r\n\t};\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst mainNav = new AANMainNav();\r\n\tconst mainNavButtons: HTMLButtonElement[] = Array.from(document.querySelectorAll(\".main-nav .toggle-nav\"));\r\n\tconst subnavButtons: HTMLButtonElement[] = Array.from(document.querySelectorAll(\".main-nav .toggle-subnav\"));\r\n\r\n\tmainNavButtons.forEach(button => {\r\n\t\tbutton.addEventListener(\"click\", () => {\r\n\t\t\tmainNav.toggleMobileMenu(button);\r\n\t\t});\r\n\t});\r\n\r\n\tsubnavButtons.forEach(subnavButton => {\r\n\t\tsubnavButton.addEventListener(\"click\", () => {\r\n\t\t\tmainNav.toggleMobileSubnav(subnavButton);\r\n\t\t});\r\n\t});\r\n});\r\n", "class TopSearch {\r\n\tprivate showSeachButton = document.querySelector(\".show-search\");\r\n\tprivate closeSearchButton = document.querySelector(\".close-search\");\r\n\tprivate pageHeader = document.querySelector(\".page-header\");\r\n\r\n\tinit() {\r\n\t\tthis.showSeachButton?.addEventListener(\"click\", () => {\r\n\t\t\tthis.pageHeader?.classList.add(\"search\");\r\n\t\t});\r\n\t\tthis.closeSearchButton?.addEventListener(\"click\", () => {\r\n\t\t\tthis.pageHeader?.classList.remove(\"search\");\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst topSearch = new TopSearch();\r\n\r\n\ttopSearch.init();\r\n});\r\n", "export class AANScrollTop {\r\n\tprivate scrollTopElement?: HTMLElement;\r\n\r\n\tprivate scrollTopVisible() {\r\n\t\tconst windowHeight: number = window.innerHeight\r\n\t\t\t|| Math.max(document.documentElement.clientHeight, document.body.clientHeight);\r\n\t\tconst showpoint: number = windowHeight / 2;\r\n\r\n\t\tif (document.documentElement.scrollTop > showpoint) {\r\n\t\t\tthis.scrollTopElement?.classList.add(\"visible\");\r\n\t\t} else {\r\n\t\t\tthis.scrollTopElement?.classList.remove(\"visible\");\r\n\t\t}\r\n\t}\r\n\r\n\tinit(): void {\r\n\t\tthis.scrollTopElement = document.querySelector(\".scroll-top\") as HTMLElement;\r\n\r\n\t\tif (!this.scrollTopElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.scrollTopVisible();\r\n\r\n\t\twindow.addEventListener(\"scroll\", () => {\r\n\t\t\tthis.scrollTopVisible();\r\n\t\t});\r\n\r\n\t\tthis.scrollTopElement.addEventListener(\"click\", () => {\r\n\t\t\tconst windowHeight: number = document.documentElement.scrollTop;\r\n\t\t\tconst animationLength = 500; // milliseconds\r\n\t\t\tconst stepUnit = Math.ceil(windowHeight / (animationLength / 10));\r\n\r\n\t\t\tconst scrollAnimation = () => {\r\n\t\t\t\twindow.scrollTo(document.documentElement.scrollLeft, document.documentElement.scrollTop - stepUnit);\r\n\r\n\t\t\t\tif (document.documentElement.scrollTop <= 10) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsetTimeout(scrollAnimation, 10);\r\n\t\t\t};\r\n\r\n\t\t\tscrollAnimation();\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst scrollTop = new AANScrollTop();\r\n\r\n\tscrollTop.init();\r\n});\r\n", "class PageActions {\r\n\tprivate pageActionsElement?: HTMLElement;\r\n\tprivate bannerElement?: HTMLElement | null;\r\n\r\n\tsetPageActionsLocation() {\r\n\r\n\t\tif (!this.pageActionsElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.bannerElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst bannerStyles = getComputedStyle(this.bannerElement);\r\n\r\n\t\tif (bannerStyles.display === \"none\") {\r\n\t\t\tthis.pageActionsElement.style.bottom = \"35px\";\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst gdprBannerHeight = parseInt(bannerStyles.height);\r\n\r\n\t\tthis.pageActionsElement.style.bottom = `${gdprBannerHeight + 1}px`;\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.pageActionsElement = document.querySelector(\".page-actions\") as HTMLElement;\r\n\t\tthis.bannerElement = document.querySelector(\".gdpr-banner\");\r\n\r\n\t\tif (!this.bannerElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.setPageActionsLocation();\r\n\r\n\t\twindow.addEventListener(\"resize\", () => {\r\n\t\t\tthis.setPageActionsLocation();\r\n\t\t});\r\n\t}\r\n}\r\n\r\nwindow.addEventListener(\"load\", () => {\r\n\tconst pageActions = new PageActions();\r\n\tpageActions.init();\r\n});\r\n", "class AANTabNav {\r\n\tinit(): void {\r\n\t\tconst tabNavs: HTMLElement[] = Array.from(document.querySelectorAll(\".tab-nav\"));\r\n\r\n\t\ttabNavs.forEach(tabNav => {\r\n\t\t\tconst menuLabel: HTMLLabelElement | null = tabNav.querySelector(\".dropdown-menu-label\");\r\n\t\t\tmenuLabel?.addEventListener(\"click\", () => {\r\n\t\t\t\tif (menuLabel.classList.contains(\"show\")) {\r\n\t\t\t\t\tmenuLabel.classList.remove(\"show\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmenuLabel.classList.add(\"show\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst activeTab: HTMLLIElement | null = tabNav.querySelector(\".active\");\r\n\t\t\tconst tabMenu = tabNav.querySelector(\"ul\");\r\n\r\n\t\t\tif (!activeTab || !tabMenu) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttabMenu.scrollLeft = activeTab.offsetLeft - (parseInt(getComputedStyle(activeTab).width) / 2);\r\n\t\t});\r\n\r\n\t\tif (tabNavs && tabNavs.length > 0) {\r\n\t\t\t// If the user clicks outside of the nav menu stop showing all the nav menu items.\r\n\t\t\tdocument.addEventListener(\"click\", event => {\r\n\t\t\t\tconst anyTabMenusDisplaying = Array.from(document.querySelectorAll(\".tab-nav .dropdown-menu-label.show\")).length > 0;\r\n\t\t\t\t// If we don't have a tab menu being displayed, don't run the other logic as it is unnecessary work.\r\n\t\t\t\tif (!anyTabMenusDisplaying) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If we are clicking in a tab menu, don't run the logic to close the tab menu.\r\n\t\t\t\tif (tabNavs.some(tabNav => tabNav === event.target || tabNav.contains(event.target as HTMLElement))) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\ttabNavs.forEach(tabNav => {\r\n\t\t\t\t\ttabNav.querySelector(\".dropdown-menu-label\")?.classList.remove(\"show\");\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst tabNav = new AANTabNav();\r\n\r\n\ttabNav.init();\r\n});\r\n", "export class AANFaqDrawer {\r\n\tinit(): void {\r\n\t\tconst faqDrawers: HTMLElement[] = Array.from(document.querySelectorAll(\".faq-drawer\"));\r\n\t\tfaqDrawers.forEach(faqDrawer => {\r\n\t\t\tconst header = faqDrawer.querySelector(\"header\") as HTMLElement;\r\n\t\t\tconst list = faqDrawer.querySelector(\".list\") as HTMLElement;\r\n\t\t\tconst footer = faqDrawer.querySelector(\"footer\") as HTMLElement;\r\n\r\n\t\t\theader.addEventListener(\"click\", () => this.slideToggle(list));\r\n\t\t\tfooter.addEventListener(\"click\", () => this.slideToggle(list));\r\n\t\t});\r\n\t}\r\n\r\n\tprivate slideUp (target: HTMLElement, duration = 500) {\r\n\t\ttarget.style.transitionProperty = \"height, margin, padding\";\r\n\t\ttarget.style.transitionDuration = duration + \"ms\";\r\n\t\ttarget.style.height = target.offsetHeight + \"px\";\r\n\t\t// Not sure why this is needed, but unless it is here this breaks for all browsers.\r\n\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\ttarget.offsetHeight;\r\n\t\ttarget.style.overflow = \"hidden\";\r\n\t\ttarget.style.height = \"0\";\r\n\t\ttarget.style.paddingTop = \"0\";\r\n\t\ttarget.style.paddingBottom = \"0\";\r\n\t\ttarget.style.marginTop = \"0\";\r\n\t\ttarget.style.marginBottom = \"0\";\r\n\t\twindow.setTimeout(() => {\r\n\t\t\ttarget.style.display = \"none\";\r\n\t\t\ttarget.style.removeProperty(\"height\");\r\n\t\t\ttarget.style.removeProperty(\"padding-top\");\r\n\t\t\ttarget.style.removeProperty(\"padding-bottom\");\r\n\t\t\ttarget.style.removeProperty(\"margin-top\");\r\n\t\t\ttarget.style.removeProperty(\"margin-bottom\");\r\n\t\t\ttarget.style.removeProperty(\"overflow\");\r\n\t\t\ttarget.style.removeProperty(\"transition-duration\");\r\n\t\t\ttarget.style.removeProperty(\"transition-property\");\r\n\t\t}, duration);\r\n\t};\r\n\r\n\tprivate slideDown (target: HTMLElement, duration = 500) {\r\n\t\ttarget.style.removeProperty(\"display\");\r\n\t\tlet display = window.getComputedStyle(target).display;\r\n\r\n\t\tif (display === \"none\") {\r\n\t\t\tdisplay = \"block\";\r\n\t\t}\r\n\r\n\t\ttarget.style.display = display;\r\n\t\tconst height = target.offsetHeight;\r\n\t\ttarget.style.overflow = \"hidden\";\r\n\t\ttarget.style.height = \"0\";\r\n\t\ttarget.style.paddingTop = \"0\";\r\n\t\ttarget.style.paddingBottom = \"0\";\r\n\t\ttarget.style.marginTop = \"0\";\r\n\t\ttarget.style.marginBottom = \"0\";\r\n\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\ttarget.offsetHeight;\r\n\t\ttarget.style.transitionProperty = \"height, margin, padding\";\r\n\t\ttarget.style.transitionDuration = duration + \"ms\";\r\n\t\ttarget.style.height = height + \"px\";\r\n\t\ttarget.style.removeProperty(\"padding-top\");\r\n\t\ttarget.style.removeProperty(\"padding-bottom\");\r\n\t\ttarget.style.removeProperty(\"margin-top\");\r\n\t\ttarget.style.removeProperty(\"margin-bottom\");\r\n\t\twindow.setTimeout(() => {\r\n\t\t\ttarget.style.removeProperty(\"height\");\r\n\t\t\ttarget.style.removeProperty(\"overflow\");\r\n\t\t\ttarget.style.removeProperty(\"transition-duration\");\r\n\t\t\ttarget.style.removeProperty(\"transition-property\");\r\n\t\t}, duration);\r\n\t};\r\n\r\n\tprivate slideToggle(target: HTMLElement, duration = 500) {\r\n\t\tif (window.getComputedStyle(target).display === \"none\") {\r\n\t\t\treturn this.slideDown(target, duration);\r\n\t\t} else {\r\n\t\t\treturn this.slideUp(target, duration);\r\n\t\t}\r\n\t};\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst faqDrawer = new AANFaqDrawer();\r\n\r\n\tfaqDrawer.init();\r\n});\r\n", "export class AANAnnouncements {\r\n\tprivate minHeight = \"190px\";\r\n\r\n\tinit(): void {\r\n\t\tconst announcements: HTMLElement[] = Array.from(document.querySelectorAll(\".announcement.see-more\"));\r\n\r\n\t\tannouncements.forEach(announcement => {\r\n\t\t\tconst button = announcement.querySelector(\".expand-button\") as HTMLElement;\r\n\r\n\t\t\tbutton.addEventListener(\"click\", () => this.slideToggle(announcement));\r\n\t\t});\r\n\t}\r\n\r\n\tprivate slideUp(target: HTMLElement, duration = 500) {\r\n\t\tconst button = target.querySelector(\".expand-button\") as HTMLElement;\r\n\r\n\t\tbutton.innerText = \"Read More\";\r\n\r\n\t\ttarget.style.transitionProperty = \"height, margin, padding\";\r\n\t\ttarget.style.transitionDuration = duration + \"ms\";\r\n\t\ttarget.style.height = target.offsetHeight + \"px\";\r\n\r\n\t\t// Not sure why this is needed, but unless it is here this breaks for all browsers.\r\n\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\ttarget.offsetHeight;\r\n\t\ttarget.style.overflow = \"hidden\";\r\n\t\ttarget.style.height = this.minHeight;\r\n\t\twindow.setTimeout(() => {\r\n\t\t\ttarget.style.removeProperty(\"height\");\r\n\t\t\ttarget.style.removeProperty(\"overflow\");\r\n\t\t\ttarget.style.removeProperty(\"transition-duration\");\r\n\t\t\ttarget.style.removeProperty(\"transition-property\");\r\n\r\n\t\t\ttarget.classList.remove(\"open\");\r\n\t\t}, duration);\r\n\t};\r\n\r\n\tprivate slideDown(target: HTMLElement, duration = 500) {\r\n\t\tconst button = target.querySelector(\".expand-button\") as HTMLElement;\r\n\t\tconst computedStyles = getComputedStyle(target);\r\n\r\n\t\tbutton.innerText = \"Show Less\";\r\n\r\n\t\tconst height = Array.from(target.children as any).map(x => x.offsetHeight).reduce((a, b) => a + b, 0)\r\n\t\t\t+ parseInt(computedStyles.paddingTop.replace(\"px\", \"\"), 10)\r\n\t\t\t+ parseInt(computedStyles.marginTop.replace(\"px\", \"\"), 10)\r\n\t\t\t+ parseInt(computedStyles.paddingBottom.replace(\"px\", \"\"), 10)\r\n\t\t\t+ parseInt(computedStyles.marginBottom.replace(\"px\", \"\"), 10);\r\n\r\n\t\ttarget.style.overflow = \"hidden\";\r\n\t\ttarget.style.height = this.minHeight;\r\n\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\ttarget.offsetHeight;\r\n\t\ttarget.style.transitionProperty = \"height, margin, padding\";\r\n\t\ttarget.style.transitionDuration = duration + \"ms\";\r\n\t\ttarget.style.height = height + \"px\";\r\n\t\twindow.setTimeout(() => {\r\n\t\t\ttarget.classList.add(\"open\");\r\n\r\n\t\t\ttarget.style.removeProperty(\"height\");\r\n\t\t\ttarget.style.removeProperty(\"overflow\");\r\n\t\t\ttarget.style.removeProperty(\"transition-duration\");\r\n\t\t\ttarget.style.removeProperty(\"transition-property\");\r\n\t\t}, duration);\r\n\t};\r\n\r\n\tprivate slideToggle(target: HTMLElement, duration = 500) {\r\n\t\tif (window.getComputedStyle(target).height === this.minHeight) {\r\n\t\t\treturn this.slideDown(target, duration);\r\n\t\t} else {\r\n\t\t\treturn this.slideUp(target, duration);\r\n\t\t}\r\n\t};\r\n}\r\n\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst announcements = new AANAnnouncements();\r\n\r\n\tannouncements.init();\r\n});\r\n", "class AANDialog {\r\n\tstatic openDialog(dialogId: string): void {\r\n\t\tconst dialog = document.getElementById(dialogId);\r\n\r\n\t\tif(!dialog) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Not all browsers support the dialog element yet. as a result TypeScrupt doesn't recognize it.\r\n\t\t// We are polyfilling it so this will make TypeScript ignore the call.\r\n\t\t(dialog as any).showModal();\r\n\t\t// When displaying the login dialog, disable scrolling on the main body element,\r\n\t\t// not having this causes mobile browsers to get confused as to what element should be scrolled.\r\n\t\tdocument.body.style.overflow = \"hidden\";\r\n\r\n\t\tdialog.addEventListener(\"close\", () => {\r\n\t\t\tdocument.body.style.overflow = \"\";\r\n\t\t});\r\n\t};\r\n\r\n\tinit() {\r\n\t\tconst dialogs = Array.from(document.querySelectorAll(\"dialog\")) as HTMLDialogElement[];\r\n\r\n\t\tif (!dialogs || dialogs.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tdialogs.forEach(dialog => {\r\n\t\t\tconst closeButton = dialog.querySelector(\".btn-close\");\r\n\r\n\t\t\tcloseButton?.addEventListener(\"click\", event => {\r\n\t\t\t\t// Not all browsers support the dialog element yet. as a result TypeScrupt doesn't recognize it.\r\n\t\t\t\t// We are polyfilling it so this will make TypeScript ignore the call.\r\n\t\t\t\t(dialog as any).close();\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t});\r\n\r\n\t\t\t// Close the dialog when the backdrop is clicked.\r\n\t\t\tdialog.addEventListener(\"click\", function (event) {\r\n\t\t\t\tconst rect = dialog.getBoundingClientRect();\r\n\t\t\t\tconst isInDialog = (rect.top <= event.clientY && event.clientY <= rect.top + rect.height\r\n\t\t\t\t\t&& rect.left <= event.clientX && event.clientX <= rect.left + rect.width);\r\n\r\n\t\t\t\tif (!isInDialog && !(event.target instanceof HTMLButtonElement)) {\r\n\t\t\t\t\t// Not all browsers support the dialog element yet. as a result TypeScrupt doesn't recognize it.\r\n\t\t\t\t\t// We are polyfilling it so this will make TypeScript ignore the call.\r\n\t\t\t\t\t(dialog as any).close();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\n// allow AanDialog to be accessable outside of our scripts.\r\n(window as any).AANDialog = AANDialog;\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst dialogs = new AANDialog();\r\n\r\n\tdialogs.init();\r\n});\r\n", "class AANLoginDialog {\r\n\tprivate loginDialog?: HTMLDialogElement;\r\n\r\n\tdisplayLoginError() {\r\n\t\tif (window.location.toString().indexOf(\"LoginError=true\") === -1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst loginErrorElement = document.querySelector(\"#loginDialog .login-error\") as HTMLSpanElement;\r\n\t\tloginErrorElement.innerText = \"The Username or Password provided is incorrect.\";\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.loginDialog = document.querySelector(\"#loginDialog\") as HTMLDialogElement;\r\n\r\n\t\tif (!this.loginDialog) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst form: HTMLFormElement | null = this.loginDialog.querySelector(\"form\");\r\n\t\tform?.addEventListener(\"submit\", event => {\r\n\t\t\tthis.loginDialog?.classList.add(\"submitted\");\r\n\t\t});\r\n\r\n\t\tthis.displayLoginError();\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst loginDialog = new AANLoginDialog();\r\n\r\n\tloginDialog.init();\r\n});\r\n", "export class AANPublicationsDialog {\r\n\tinit(): void {\r\n\t\tconst showPublicationsButtons = Array.from(document.querySelectorAll(\"button.show-publications\"));\r\n\t\tconst publicationsDialog = document.getElementById(\"publications\") as HTMLDialogElement;\r\n\r\n\t\tif (!publicationsDialog) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tshowPublicationsButtons.forEach(showPublicationsButton => {\r\n\t\t\tshowPublicationsButton.addEventListener(\"click\", () => {\r\n\t\t\t\tif (!publicationsDialog.hasAttribute(\"open\")) {\r\n\t\t\t\t\t// Not all browsers support the dialog element yet. as a result TypeScrupt doesn't recognize it.\r\n\t\t\t\t\t// We are polyfilling it so this will make TypeScript ignore the call.\r\n\t\t\t\t\t(publicationsDialog as any).showModal();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t(publicationsDialog as any).close();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst publicationsDialog = new AANPublicationsDialog();\r\n\r\n\tpublicationsDialog.init();\r\n});\r\n", "class AANTable {\r\n\tinit() {\r\n\t\tconst tables = Array.from(document.querySelectorAll(\"table\")) as HTMLTableElement[];\r\n\r\n\t\ttables.forEach(table => {\r\n\t\t\tconst tableHeaders = Array.from(table.querySelectorAll(\"thead th, thead td\")) as HTMLTableHeaderCellElement[];\r\n\t\t\tconst tableRows = Array.from(table.querySelectorAll(\"thead ~ tbody tr\")) as HTMLTableRowElement[];\r\n\r\n\t\t\tthis.forceMobileIfNeeded(table);\r\n\r\n\t\t\tif (!tableHeaders || tableHeaders.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttableRows.forEach(row => {\r\n\t\t\t\tconst columns = row.querySelectorAll(\"td\");\r\n\r\n\t\t\t\tfor (let i = 0, len = columns.length; i < len; i++) {\r\n\t\t\t\t\tconst column = columns[i];\r\n\t\t\t\t\tconst tableHeader = tableHeaders[i];\r\n\t\t\t\t\tif (!column.hasAttribute(\"data-label\") && tableHeader) {\r\n\t\t\t\t\t\tcolumn.setAttribute(\"data-label\", tableHeader.innerText);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\twindow.addEventListener(\"resize\", () => {\r\n\t\t\ttables.forEach(table => {\r\n\t\t\t\tthis.forceMobileIfNeeded(table);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Check if the table is too wide compared to the parent, if so then add a class to force it to display as mobile.\r\n\t * */\r\n\tprivate forceMobileIfNeeded(table: HTMLTableElement) {\r\n\t\ttable.classList.remove(\"force-mobile\");\r\n\t\tif(!table.parentElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst parentStyles = getComputedStyle(table.parentElement);\r\n\t\tconst tableStyles = getComputedStyle(table);\r\n\t\tconst parentWidth = parseInt(parentStyles.width);\r\n\t\tconst tableWidth = parseInt(tableStyles.width) + parseInt(tableStyles.marginLeft) + parseInt(tableStyles.marginRight);\r\n\t\t// debugger;\r\n\r\n\t\tif (parentWidth < tableWidth) {\r\n\t\t\ttable.classList.add(\"force-mobile\");\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst table = new AANTable();\r\n\ttable.init();\r\n});\r\n", "export class AANDropdownForm {\r\n\tinit(): void {\r\n\t\tconst openDropdownButtons: (HTMLButtonElement | HTMLLabelElement)[] = Array.from(document.querySelectorAll(\".dropdown .dropdown-trigger\"));\r\n\r\n\t\tdocument.addEventListener(\"click\", () => {\r\n\t\t\tArray.from(document.querySelectorAll(\".dropdown .dropdown-content\")).forEach((dropdownContent: HTMLElement) => {\r\n\t\t\t\tconst contentVisibleCheckBox = dropdownContent.parentElement?.querySelector(\"input.content-visible\") as HTMLInputElement;\r\n\t\t\t\tdropdownContent.classList.remove(\"visible\");\r\n\t\t\t\tif (contentVisibleCheckBox) {\r\n\t\t\t\t\tcontentVisibleCheckBox.checked = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\topenDropdownButtons.forEach(openDropdownButton => {\r\n\t\t\tconst dropdownElement = openDropdownButton.parentElement;\r\n\t\t\tconst dropdownContent = dropdownElement?.querySelector(\".dropdown-content\") as HTMLElement;\r\n\t\t\tconst contentVisibleCheckBox = dropdownElement?.querySelector(\"input.content-visible\") as HTMLInputElement;\r\n\r\n\t\t\tdropdownElement?.addEventListener(\"click\", e => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\r\n\t\t\tconst closeDropdownButtons = Array.from(dropdownElement?.querySelectorAll(\".btn-close:not(label), .cancel:not(label), .apply:not(label)\") ?? []);\r\n\r\n\t\t\tcloseDropdownButtons.forEach(closeDropdownButton => {\r\n\t\t\t\tcloseDropdownButton.addEventListener(\"click\", () => {\r\n\t\t\t\t\tdropdownContent.classList.remove(\"visible\");\r\n\t\t\t\t\tif (contentVisibleCheckBox) {\r\n\t\t\t\t\t\tcontentVisibleCheckBox.checked = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tif (openDropdownButton instanceof HTMLLabelElement && contentVisibleCheckBox) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\topenDropdownButton.addEventListener(\"click\", () => {\r\n\t\t\t\tdropdownContent.classList.add(\"visible\");\r\n\t\t\t\tif (contentVisibleCheckBox) {\r\n\t\t\t\t\tcontentVisibleCheckBox.checked = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst dropdownForm = new AANDropdownForm();\r\n\tdropdownForm.init();\r\n});\r\n", "declare const $$epiforms: any;\r\n\r\nclass AANSubscribe {\r\n\tinit() {\r\n\t\tif (typeof $$epiforms === \"undefined\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$$epiforms(\".EPiServerForms[data-f-metadata=\\\"subscribe\\\"]\").on(\"formsSubmitted\", (event: Event) => {\r\n\t\t\tconst subscribeForm: HTMLFormElement = event.currentTarget as HTMLFormElement;\r\n\t\t\tconst previousElement: HTMLElement = subscribeForm.previousElementSibling as HTMLElement;\r\n\t\t\tconst nextElement: HTMLElement = subscribeForm.nextElementSibling as HTMLElement;\r\n\t\t\t\r\n\t\t\tpreviousElement.style.display = \"none\";\r\n\t\t\tnextElement.style.display = \"block\";\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst subscribe = new AANSubscribe();\r\n\r\n\tsubscribe.init();\r\n});\r\n", "class SideNav {\r\n\tinit() {\r\n\t\tconst sideNavs = Array.from(document.querySelectorAll(\".side-nav\"));\r\n\t\tconst sideNavHrefs = sideNavs.map(sideNav => Array.from(sideNav.querySelectorAll(\"a[href^='#']\")).map(anchor => anchor.getAttribute(\"href\")))\r\n\t\t\t.reduce((prev, curr) => [...prev, ...curr], []);\r\n\t\tconst pageAnchors = Array.from(document.querySelectorAll(\"[id]\"))\r\n\t\t\t.filter(pageAnchor => sideNavHrefs.some(sideNavHref => sideNavHref === pageAnchor.id));\r\n\r\n\t\tif ((pageAnchors?.length ?? 0) <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.addEventListener(\"scroll\", () => {\r\n\t\t\tconst activeAnchor = pageAnchors.filter(pageAnchor => pageAnchor.getBoundingClientRect().top < 100).sort((a, b) => {\r\n\t\t\t\tconst aTop = a.getBoundingClientRect().top;\r\n\t\t\t\tconst bTop = b.getBoundingClientRect().top;\r\n\r\n\t\t\t\tif (aTop > bTop) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\tif (aTop === bTop) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn -1;\r\n\t\t\t})[0];\r\n\r\n\t\t\tif (!activeAnchor) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tsideNavs.forEach(sideNav => {\r\n\t\t\t\tif (sideNav.getAttribute(\"href\") === activeAnchor.id) {\r\n\t\t\t\t\tsideNav.classList.add(\"active\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsideNav.classList.remove(\"active\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst sideNav = new SideNav();\r\n\r\n\tsideNav.init();\r\n});\r\n", "class SponsoredBy {\r\n\tinit() {\r\n\t\tconst sponsoredItems = Array.from(document.querySelectorAll(\"aside.sponsored-by\"));\r\n\r\n\t\tsponsoredItems.forEach(sponsoredItem => {\r\n\t\t\tconst closeButtons = Array.from(sponsoredItem.querySelectorAll(\".btn-close\"));\r\n\r\n\t\t\tcloseButtons.forEach(closeButton => {\r\n\t\t\t\tcloseButton.addEventListener(\"click\", event => {\r\n\t\t\t\t\tsponsoredItem.classList.remove(\"open\");\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tsponsoredItem.addEventListener(\"click\", event => {\r\n\t\t\t\tsponsoredItem.classList.add(\"open\");\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tdocument.addEventListener(\"click\", event => {\r\n\t\t\tsponsoredItems.filter(sponsoredItem => sponsoredItem.classList.contains(\"open\")).forEach(sponsoredItem => {\r\n\t\t\t\tconst rect = sponsoredItem.getBoundingClientRect();\r\n\t\t\t\tconst isInContent = (rect.top <= event.clientY && event.clientY <= rect.top + rect.height\r\n\t\t\t\t\t&& rect.left <= event.clientX && event.clientX <= rect.left + rect.width);\r\n\r\n\t\t\t\tif (!isInContent) {\r\n\t\t\t\t\tsponsoredItem.classList.remove(\"open\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst sponsoredBy = new SponsoredBy();\r\n\tsponsoredBy.init();\r\n});\r\n", "export class AMQuickLinks {\r\n init() {\r\n const bgImage = document.getElementById(\"quick_links_image\") as HTMLImageElement | null;\r\n\r\n if (bgImage) {\r\n const randomNumber = this.getRandom(0, 10);\r\n bgImage.src = `/Static/AMQuicklinks/AM_QuickLinks_${randomNumber + 1}.jpg`;\r\n }\r\n }\r\n\r\n private getRandom(min: number, max: number): number {\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n return Math.floor(Math.random() * (max - min)) + min; // The maximum is exclusive and the minimum is inclusive\r\n }\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n const quickLinks = new AMQuickLinks()\r\n quickLinks.init()\r\n})"], "mappings": "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", "names": ["ScrollFollow", "_ScrollFollow", "element", "className", "setTop", "x", "removeClass", "windowHeight", "elementBoundingRec", "parentBoundingRec", "elementExtendsBelowWindow", "parentBelowTopOfWindow", "topAlignment", "elementAboveTopOfParent", "pinToTop", "pinToBottom", "scrollFollowElements", "scrollFollowElement", "AANBanner", "event", "banner", "id", "closedBanners", "bannerElements", "bannerId", "closeButton", "element", "AANGDPRBanner", "event", "bannerElement", "AANTopNav", "mainNavButtons", "toggleMobileMenu", "button", "AANMainNav", "button", "expandValue", "mainNav", "mainNavButtons", "subnavButtons", "subnavButton", "TopSearch", "AANScrollTop", "showpoint", "windowHeight", "stepUnit", "scrollAnimation", "PageActions", "bannerStyles", "gdprBannerHeight", "AANTabNav", "tabNavs", "tabNav", "menuLabel", "activeTab", "tabMenu", "event", "AANFaqDrawer", "faqDrawer", "header", "list", "footer", "target", "duration", "display", "height", "AANAnnouncements", "announcement", "target", "duration", "button", "computedStyles", "height", "x", "a", "b", "AANDialog", "dialogId", "dialog", "dialogs", "event", "rect", "AANLoginDialog", "loginErrorElement", "event", "AANPublicationsDialog", "showPublicationsButtons", "publicationsDialog", "showPublicationsButton", "AANTable", "tables", "table", "tableHeaders", "tableRows", "row", "columns", "i", "len", "column", "tableHeader", "parentStyles", "tableStyles", "parentWidth", "tableWidth", "AANDropdownForm", "openDropdownButtons", "dropdownContent", "contentVisibleCheckBox", "openDropdownButton", "dropdownElement", "e", "closeDropdownButton", "AANSubscribe", "event", "subscribeForm", "previousElement", "nextElement", "SideNav", "sideNavs", "sideNavHrefs", "sideNav", "anchor", "prev", "curr", "pageAnchors", "pageAnchor", "sideNavHref", "activeAnchor", "a", "b", "aTop", "bTop", "SponsoredBy", "sponsoredItems", "sponsoredItem", "closeButton", "event", "rect", "AMQuickLinks", "bgImage", "randomNumber", "min", "max"] }