{"version":3,"sources":["src/Static/index.ts","src/Static/js/components/Navigation.ts","src/Static/js/components/LeftNavigation.ts","src/Static/js/components/LanguagePicker.ts","src/Static/js/components/Table.ts","src/Static/js/components/ImageBank.ts","src/Static/js/helpers/Helper.ts","src/Static/js/components/Dropdown.ts","src/Features/Blocks/Faq/faqBlock.ts","src/Features/Blocks/PromotedImageCovers/image-cover.ts","src/Static/js/components/c-cookie-popup.ts","src/Static/js/components/c-blockquote.ts","src/Static/js/components/VideoPlayer.tsx"],"sourcesContent":["import { NavigationFactory } from \"./js/components/Navigation\";\r\nimport { LeftNavigationFactory } from \"./js/components/LeftNavigation\";\r\nimport { LanguagePickerFactory } from \"./js/components/LanguagePicker\";\r\nimport { TableFactory } from \"./js/components/Table\";\r\nimport { ImageBankFactory } from \"./js/components/ImageBank\";\r\nimport { DropdownFactory } from \"./js/components/Dropdown\";\r\nimport { FaqBlockFactory } from \"../Features/Blocks/Faq/faqBlock\";\r\nimport { ImageCoverFactory } from \"../Features/Blocks/PromotedImageCovers/image-cover\";\r\n\r\nimport \"./js/helpers/Helper\";\r\nimport \"./js/components/c-cookie-popup\";\r\nimport \"./js/components/c-blockquote\";\r\n\r\nimport \"./sass/index.scss\";\r\nimport \"./sass/editor.scss\";\r\n\r\nimport * as React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport VideoPlayer from \"./js/components/VideoPlayer\";\r\n\r\nconst componentTypes: { [index: string]: any } = {\r\n VideoPlayer,\r\n};\r\n\r\nconst componentIdentifier = \"data-react-component\";\r\nconst header: HTMLElement = document.querySelector(\".l-header\");\r\nconst scrollHeightCutoff = 30;\r\nconst scrolledCssClass = \"l-header--scrolled\";\r\n\r\nconst includeHTML = () => {\r\n const elements = document.getElementsByTagName(\"*\");\r\n for (const elm of elements as any) {\r\n if (elm.hasAttribute && elm.hasAttribute(\"data-include\")) {\r\n fragment(elm, elm.getAttribute(\"data-include\"));\r\n }\r\n }\r\n function fragment(el: any, url: any) {\r\n const localTest = /^(?:file):/;\r\n const xmlhttp = new XMLHttpRequest();\r\n let status = 0;\r\n\r\n xmlhttp.onreadystatechange = () => {\r\n /* if we are on a local protocol, and we have response text, we'll assume\r\n * \t\t\t\tthings were sucessful */\r\n if (xmlhttp.readyState === 4) {\r\n status = xmlhttp.status;\r\n }\r\n if (localTest.test(location.href) && xmlhttp.responseText) {\r\n status = 200;\r\n }\r\n if (xmlhttp.readyState === 4 && status === 200) {\r\n el.outerHTML = xmlhttp.responseText;\r\n }\r\n };\r\n\r\n try {\r\n xmlhttp.open(\"GET\", url, true);\r\n xmlhttp.send();\r\n } catch (err) {\r\n /* todo catch error */\r\n }\r\n }\r\n};\r\n\r\nconst onDOMLoaded = (event: Event) => {\r\n document.getElementsByTagName(\"html\")[0].style.visibility = \"visible\";\r\n\r\n const initialize = (componentContainer: Element) => {\r\n const props = JSON.parse(componentContainer.getAttribute(\"data-props\") || \"{}\");\r\n\r\n ReactDOM.render(\r\n React.createElement(\r\n componentTypes[componentContainer.getAttribute(componentIdentifier) || \"\"],\r\n props,\r\n ),\r\n componentContainer,\r\n );\r\n };\r\n\r\n // Mount React components\r\n const nodes = document.querySelectorAll(\"[\" + componentIdentifier + \"]\");\r\n\r\n for (const node of nodes as any) {\r\n // cast to \"any\" as NodeListOf<> yields \"... is not an array type\" error\r\n initialize(node);\r\n }\r\n includeHTML();\r\n};\r\n\r\nconst onScroll = (event: Event) => {\r\n if (header.classList.contains(\"l-header--no-scroll\")) {\r\n return;\r\n }\r\n\r\n const scrollHeight = window.pageYOffset;\r\n\r\n if (scrollHeight > scrollHeightCutoff) {\r\n header.classList.add(scrolledCssClass);\r\n } else {\r\n header.classList.remove(scrolledCssClass);\r\n }\r\n};\r\n\r\nNavigationFactory.init();\r\nLeftNavigationFactory.init();\r\nLanguagePickerFactory.init();\r\nTableFactory.init();\r\nImageBankFactory.init();\r\nDropdownFactory.init();\r\n\r\nFaqBlockFactory.init();\r\nImageCoverFactory.init();\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", onDOMLoaded);\r\ndocument.addEventListener(\"scroll\", onScroll);\r\n","interface NavigationItem {\r\n linkElement: Element;\r\n itemContainer: Element;\r\n attachedCallbacks?: { eventName: string; listener: EventListener }[];\r\n}\r\n\r\nclass Navigation {\r\n /** The outer header element */\r\n private header: Element | null = null;\r\n\r\n /** The outer container for all navigation items */\r\n private menu: Element | null = null;\r\n\r\n /** Menu toggle button */\r\n private menuButton: Element | null = null;\r\n\r\n /** All navigation items which has nested navigation items */\r\n private nestedItems: NavigationItem[] = [];\r\n\r\n private touchTriggerPosY: number | null = null;\r\n\r\n // holding variables for timers\r\n private menuEnterTimer: number | null = null;\r\n\r\n constructor(header: Element) {\r\n this.header = header;\r\n\r\n this.initialize = this.initialize.bind(this);\r\n\r\n this.attachEvents = this.attachEvents.bind(this);\r\n\r\n this.onFlyoutToggled = this.onFlyoutToggled.bind(this);\r\n this.onMenuToggled = this.onMenuToggled.bind(this);\r\n this.onNestedItemToggled = this.onNestedItemToggled.bind(this);\r\n\r\n this.isMobile = this.isMobile.bind(this);\r\n this.toggleMenu = this.toggleMenu.bind(this);\r\n\r\n // Touch events to prevent swipes from triggering wrong events\r\n this.onTouchStart = this.onTouchStart.bind(this);\r\n this.onTouchEnd = this.onTouchEnd.bind(this);\r\n\r\n this.onClickOutside = this.onClickOutside.bind(this);\r\n this.onClickInside = this.onClickInside.bind(this);\r\n\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n if (!this.header) {\r\n console.error(\"Invalid header\");\r\n return;\r\n }\r\n\r\n this.menu = this.header.querySelector(\".l-header__menu\");\r\n this.menuButton = this.header.querySelector(\".l-header__menu-toggle\");\r\n this.menuButton?.addEventListener(\"click\", this.onMenuToggled);\r\n\r\n const navItems = this.header.querySelectorAll(\".l-header__main-nav li\");\r\n\r\n for (let i = 0; i < navItems.length; i++) {\r\n const item = navItems.item(i);\r\n\r\n if (!item) {\r\n continue;\r\n }\r\n\r\n let linkElement, itemContainer;\r\n\r\n for (let x = 0; x < item.children.length; x++) {\r\n const childItem = item?.children[x];\r\n\r\n if (!childItem) {\r\n continue;\r\n }\r\n\r\n if (childItem.tagName.toLowerCase() === \"a\") {\r\n linkElement = childItem;\r\n\r\n if (!linkElement.classList.contains(\"s--level-0\")) {\r\n linkElement.setAttribute(\"tabindex\", \"-1\");\r\n }\r\n }\r\n\r\n itemContainer = item;\r\n }\r\n\r\n if (linkElement && itemContainer) {\r\n this.nestedItems.push({\r\n linkElement,\r\n itemContainer,\r\n });\r\n }\r\n }\r\n\r\n this.attachEvents();\r\n\r\n window.addEventListener(\"resize\", this.attachEvents);\r\n document.addEventListener(\"click\", this.onClickOutside);\r\n this.header.addEventListener(\"click\", this.onClickInside);\r\n }\r\n\r\n attachEvents() {\r\n for (const item of this.nestedItems) {\r\n // Remove currently attached listeners\r\n if (item.attachedCallbacks) {\r\n for (const callback of item.attachedCallbacks) {\r\n item.itemContainer.removeEventListener(callback.eventName, callback.listener);\r\n item.linkElement.removeEventListener(callback.eventName, callback.listener);\r\n }\r\n }\r\n\r\n if (this.isMobile()) {\r\n // Set up event callback on mobile events\r\n item.attachedCallbacks = [\r\n {\r\n eventName: \"touchstart\", listener: this.onTouchStart\r\n },\r\n {\r\n eventName: \"touchend\",\r\n listener: (e: Event) => this.onTouchEnd(e, () => this.onNestedItemToggled(e, item)),\r\n },\r\n {\r\n eventName: \"click\",\r\n listener: (e: Event) => this.onNestedItemToggled(e, item, true),\r\n }\r\n ];\r\n } else {\r\n // Set up event callback on desktop (mouse) events\r\n item.attachedCallbacks = [\r\n {\r\n eventName: \"mouseenter\",\r\n listener: (e: Event) => this.onNestedItemToggled(e, item, true, true),\r\n },\r\n {\r\n eventName: \"mouseleave\",\r\n listener: (e: Event) => this.onNestedItemToggled(e, item, false, false),\r\n },\r\n ];\r\n }\r\n\r\n // Attach new events\r\n if (item.attachedCallbacks) {\r\n for (const callback of item.attachedCallbacks) {\r\n // To ensure proper logic and avoiding misfiring events,\r\n // touch (mobile) event listeners will be attached the clicked link itself\r\n // and mouse (desktop) event listeners will be attached to the container of the link,\r\n const eventAttachmentTarget =\r\n callback.eventName.indexOf(\"mouse\") !== -1 ? \"itemContainer\" : \"linkElement\";\r\n\r\n item[eventAttachmentTarget].addEventListener(callback.eventName, callback.listener);\r\n }\r\n }\r\n }\r\n\r\n for (const flyoutToggleElement of this.header?.querySelectorAll(\r\n \"[data-flyout-selector]\",\r\n ) as any) {\r\n // Remove, and re-attach listener\r\n flyoutToggleElement.removeEventListener(\"click\", this.onFlyoutToggled);\r\n flyoutToggleElement.addEventListener(\"click\", this.onFlyoutToggled);\r\n }\r\n }\r\n\r\n onFlyoutToggled(e: Event) {\r\n e.preventDefault();\r\n\r\n const clickTarget = e.currentTarget as Element;\r\n const targetFlyoutSelector = clickTarget?.getAttribute(\"data-flyout-selector\");\r\n\r\n if (!targetFlyoutSelector || !targetFlyoutSelector.length) {\r\n return;\r\n }\r\n\r\n const targets =\r\n targetFlyoutSelector === \"--parent\"\r\n ? [clickTarget.parentElement]\r\n : this.header?.querySelectorAll(targetFlyoutSelector);\r\n\r\n if (!targets || !targets.length) {\r\n return;\r\n }\r\n\r\n if (clickTarget.classList.contains(\"s--active\")) {\r\n clickTarget.classList.remove(\"s--active\");\r\n } else {\r\n clickTarget.classList.add(\"s--active\");\r\n }\r\n\r\n for (const target of targets as any) {\r\n if (target.classList.contains(\"s--active\")) {\r\n target.classList.remove(\"s--active\");\r\n } else {\r\n target.classList.add(\"s--active\");\r\n target.querySelector(\"input\").focus();\r\n }\r\n }\r\n }\r\n\r\n onMenuToggled(e: Event) {\r\n e.preventDefault();\r\n\r\n if (!this.menu) {\r\n return;\r\n }\r\n\r\n if (this.menu.classList.contains(\"s--active\")) {\r\n this.menu.classList.remove(\"s--active\");\r\n\r\n if (this.menuButton?.classList.contains(\"s--active\")) {\r\n this.menuButton?.classList.remove(\"s--active\");\r\n }\r\n } else {\r\n this.menu.classList.add(\"s--active\");\r\n\r\n if (!this.menuButton?.classList.contains(\"s--active\")) {\r\n this.menuButton?.classList.add(\"s--active\");\r\n }\r\n }\r\n }\r\n\r\n onNestedItemToggled(e: Event, item: NavigationItem, forceState?: boolean, isMouseEnter?: boolean) {\r\n const that = this;\r\n let toggleBtnClicked = false;\r\n const showDelay = 400; // Delay in milliseconds\r\n\r\n if (that.isMobile()) {\r\n const hasSubNav = item.itemContainer.querySelector(\".l-header__sub-nav\") !== null;\r\n\r\n if (e.target instanceof HTMLElement) {\r\n if ((e.target as HTMLElement).classList.contains(\"s--toggle\")) {\r\n toggleBtnClicked = true;\r\n }\r\n }\r\n\r\n if (hasSubNav && toggleBtnClicked) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n }\r\n\r\n if (!that.isMobile() || (that.isMobile() && toggleBtnClicked)) {\r\n\r\n // If top level nav item, add delay for trigger\r\n if (item.linkElement.classList.contains(\"s--level-0\")) {\r\n\r\n if (isMouseEnter) {\r\n this.menuEnterTimer = setTimeout(() => {\r\n that.toggleMenu(e, item, forceState); // Toggle to display\r\n }, showDelay);\r\n } else {\r\n // Clear the timeout on mouseleave\r\n clearTimeout(this.menuEnterTimer);\r\n that.toggleMenu(e, item, forceState); // Toggle to disappear \r\n }\r\n\r\n }\r\n // If not top level nav item, display instantly\r\n else {\r\n that.toggleMenu(e, item, forceState);\r\n }\r\n }\r\n }\r\n\r\n toggleMenu(e: Event, item: NavigationItem, forceState?: boolean) {\r\n const shouldForceState = forceState !== undefined && forceState !== null;\r\n const isActive = item.itemContainer.classList.contains(\"s--active\");\r\n const links = item.itemContainer.querySelectorAll(\"a\");\r\n\r\n if (shouldForceState && isActive === forceState) {\r\n return;\r\n }\r\n\r\n if (isActive) {\r\n item.itemContainer.classList.remove(\"s--active\");\r\n item.itemContainer.classList.add(\"s--deactivated\");\r\n\r\n for (let i = 0; i < links.length; i++) {\r\n if (!links[i].classList.contains(\"s--level-0\")) {\r\n links[i].setAttribute(\"tabindex\", \"-1\");\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n item.itemContainer.classList.remove(\"s--deactivated\");\r\n }, 400);\r\n\r\n } else if (!isActive) {\r\n item.itemContainer.classList.add(\"s--active\");\r\n\r\n const threshold = 50;\r\n const originalPosY = document.documentElement.scrollTop;\r\n\r\n for (let i = 0; i < links.length; i++) {\r\n links[i].setAttribute(\"tabindex\", \"0\");\r\n }\r\n\r\n document.addEventListener(\"keyup\", function (event) {\r\n if (event.key === \"Escape\") {\r\n item.itemContainer.classList.remove(\"s--active\");\r\n item.itemContainer.classList.add(\"s--deactivated\");\r\n\r\n setTimeout(() => {\r\n item.itemContainer.classList.remove(\"s--deactivated\");\r\n }, 300);\r\n }\r\n });\r\n\r\n window.addEventListener(\"scroll\", (event) => {\r\n const scrollPosY = document.documentElement.scrollTop;\r\n\r\n if (scrollPosY - originalPosY > threshold) {\r\n item.itemContainer.classList.remove(\"s--active\");\r\n item.itemContainer.classList.add(\"s--deactivated\");\r\n\r\n setTimeout(() => {\r\n item.itemContainer.classList.remove(\"s--deactivated\");\r\n }, 300);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Checks if current viewport size corresponds to mobile,\r\n * to ensure we can implement different behaviors depending on if\r\n * mobile menu is active or not\r\n */\r\n isMobile() {\r\n const body = document.getElementsByTagName(\"body\")[0];\r\n const viewportWidth =\r\n window.innerWidth ||\r\n (document.documentElement as HTMLElement).clientWidth ||\r\n body.clientWidth;\r\n\r\n return viewportWidth <= 1278;\r\n }\r\n\r\n onClickOutside(e: Event) {\r\n const activeElements = this.header?.querySelectorAll(\".s--active\");\r\n\r\n if (!activeElements) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < activeElements.length; i++) {\r\n const element = activeElements.item(i);\r\n\r\n element.classList.remove(\"s--active\");\r\n }\r\n }\r\n\r\n onClickInside(e: Event) {\r\n e.stopPropagation();\r\n }\r\n\r\n onTouchStart(e: Event) {\r\n const touchEvent = e as TouchEvent;\r\n\r\n if (!touchEvent) {\r\n return;\r\n }\r\n\r\n this.touchTriggerPosY = touchEvent.changedTouches[0].clientY;\r\n }\r\n\r\n onTouchEnd(e: Event, callback: () => unknown) {\r\n const touchEvent = e as TouchEvent;\r\n\r\n if (!touchEvent || this.touchTriggerPosY === null) {\r\n return;\r\n }\r\n\r\n const touchEndPosY = touchEvent.changedTouches[0].clientY;\r\n const deltaY = this.touchTriggerPosY - touchEndPosY;\r\n\r\n // Compare to arbitrary number, whatever makes sense when testing\r\n if (Math.abs(deltaY) < 30) {\r\n this.touchTriggerPosY = null;\r\n callback();\r\n }\r\n }\r\n}\r\n\r\nexport class NavigationFactory {\r\n static init() {\r\n const header = document.querySelector(\".l-header\");\r\n\r\n if (header) {\r\n const navigation = new Navigation(header);\r\n }\r\n }\r\n}\r\n","interface NavigationItem {\r\n toggleElement: Element;\r\n itemContainer: Element;\r\n attachedCallbacks?: { eventName: string; listener: EventListener }[];\r\n}\r\n\r\nclass LeftNavigation {\r\n /** The outer header element */\r\n private leftNavigation: Element | null = null;\r\n\r\n /** All navigation items which has nested navigation items */\r\n private subItems: NavigationItem[] = [];\r\n\r\n constructor(leftNavigation: Element) {\r\n this.leftNavigation = leftNavigation;\r\n this.initialize = this.initialize.bind(this);\r\n this.attachEvents = this.attachEvents.bind(this);\r\n this.onNestedItemToggled = this.onNestedItemToggled.bind(this);\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n if (!this.leftNavigation) {\r\n console.error(\"Invalid left navigation\");\r\n return;\r\n }\r\n\r\n const leftNavItems = this.leftNavigation.querySelectorAll(\".c-leftmenu__nav-item\");\r\n\r\n for (let i = 0; i < leftNavItems.length; i++) {\r\n const item = leftNavItems.item(i);\r\n\r\n if (!item) {\r\n continue;\r\n }\r\n\r\n let toggleElement, itemContainer;\r\n\r\n for (let x = 0; x < item.children.length; x++) {\r\n const childItem = item?.children[x];\r\n\r\n if (!childItem) {\r\n continue;\r\n }\r\n\r\n if (childItem.tagName.toLowerCase() === \"button\") {\r\n toggleElement = childItem;\r\n }\r\n\r\n itemContainer = item;\r\n }\r\n\r\n if (toggleElement && itemContainer) {\r\n this.subItems.push({\r\n toggleElement,\r\n itemContainer,\r\n });\r\n }\r\n }\r\n\r\n this.attachEvents();\r\n\r\n window.addEventListener(\"resize\", this.attachEvents);\r\n }\r\n\r\n attachEvents() {\r\n for (const item of this.subItems) {\r\n // Remove currently attached listeners\r\n if (item.attachedCallbacks) {\r\n for (const callback of item.attachedCallbacks) {\r\n item.itemContainer.removeEventListener(callback.eventName, callback.listener);\r\n item.toggleElement.removeEventListener(callback.eventName, callback.listener);\r\n }\r\n }\r\n\r\n // Set up event callback on desktop (mouse) events\r\n item.attachedCallbacks = [\r\n {\r\n eventName: \"click\",\r\n listener: (e: Event) => this.onNestedItemToggled(e, item, true),\r\n }\r\n ];\r\n\r\n // Attach new events\r\n if (item.attachedCallbacks) {\r\n for (const callback of item.attachedCallbacks) {\r\n // To ensure proper logic and avoiding misfiring events,\r\n // touch (mobile) event listeners will be attached the clicked link itself\r\n // and mouse (desktop) event listeners will be attached to the container of the link,\r\n const eventAttachmentTarget =\r\n callback.eventName.indexOf(\"mouse\") !== -1 ? \"itemContainer\" : \"toggleElement\";\r\n\r\n item[eventAttachmentTarget].addEventListener(callback.eventName, callback.listener);\r\n }\r\n }\r\n }\r\n }\r\n\r\n onNestedItemToggled(e: Event, item: NavigationItem, forceState?: boolean) {\r\n let toggleBtnClicked = false;\r\n let elem;\r\n\r\n const hasSubNav = item.itemContainer.querySelector(\".c-leftmenu__nav-sub\") !== null;\r\n\r\n if (e.currentTarget instanceof HTMLElement) {\r\n elem = e.currentTarget as HTMLElement;\r\n if (elem.classList.contains(\"s--toggle\")) {\r\n toggleBtnClicked = true;\r\n }\r\n }\r\n\r\n if (hasSubNav && toggleBtnClicked) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n\r\n if (toggleBtnClicked) {\r\n const isActive = item.itemContainer.classList.contains(\"s--expanded\");\r\n\r\n if (isActive) {\r\n item.itemContainer.classList.remove(\"s--expanded\");\r\n } else if (!isActive) {\r\n item.itemContainer.classList.add(\"s--expanded\");\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class LeftNavigationFactory {\r\n static init() {\r\n const leftNavigation = document.querySelector(\".c-leftmenu\");\r\n\r\n if (leftNavigation) {\r\n const leftNav = new LeftNavigation(leftNavigation);\r\n }\r\n }\r\n}","class LanguagePicker {\r\n private languagePicker: Element | null = null;\r\n private languagePickerBtn: HTMLElement | null = null;\r\n\r\n constructor(langPicker: Element) {\r\n this.languagePicker = langPicker;\r\n this.onMenuToggled = this.onMenuToggled.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.languagePickerBtn = this.languagePicker.querySelector(\".c-langpicker__btn\");\r\n this.languagePickerBtn?.addEventListener(\"click\", this.onMenuToggled);\r\n\r\n if (this.languagePickerBtn) {\r\n const activeLanguage = this.languagePicker.querySelector(\r\n \".c-langpicker__list-item.s--active\",\r\n );\r\n\r\n if (activeLanguage) {\r\n const link = activeLanguage.querySelector(\"a\");\r\n const langName = link.innerHTML;\r\n\r\n const childNodes = this.languagePickerBtn.childNodes;\r\n for (let i = 0; i < childNodes.length; i++) {\r\n const node = childNodes.item(i);\r\n if (node.nodeName === \"#text\") {\r\n //node.nodeValue = langName;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMenuToggled(e: Event) {\r\n e.preventDefault();\r\n\r\n if (!this.languagePicker) {\r\n return;\r\n }\r\n\r\n if (this.languagePicker.classList.contains(\"s--active\")) {\r\n if (this.languagePicker.classList.contains(\"c-langpicker\")) {\r\n this.languagePicker.classList.remove(\"s--active\");\r\n }\r\n\r\n if (this.languagePickerBtn?.classList.contains(\"s--active\")) {\r\n this.languagePickerBtn?.classList.remove(\"s--active\");\r\n }\r\n } else {\r\n this.languagePicker.classList.add(\"s--active\");\r\n\r\n if (!this.languagePickerBtn?.classList.contains(\"s--active\")) {\r\n this.languagePickerBtn?.classList.add(\"s--active\");\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class LanguagePickerFactory {\r\n static init() {\r\n const header = document.querySelector(\".l-header\");\r\n\r\n if (header) {\r\n const langPicker = header.querySelector(\".c-langpicker\");\r\n if (langPicker) {\r\n const picker = new LanguagePicker(langPicker);\r\n }\r\n }\r\n }\r\n}\r\n","class Table {\r\n private table: Element | null = null;\r\n\r\n constructor(table: Element) {\r\n this.table = table;\r\n\r\n this.init();\r\n }\r\n\r\n attachTableRowClick(e: Event) {\r\n const clickTarget = e.currentTarget as HTMLElement;\r\n\r\n const url = clickTarget.dataset.url;\r\n\r\n if (!url) {\r\n return;\r\n }\r\n\r\n window.location.href = url;\r\n }\r\n\r\n init() {\r\n const newParent: HTMLElement = document.createElement(\"div\");\r\n newParent.classList.add(\"table-responsive\");\r\n\r\n this.table.parentNode.insertBefore(newParent, this.table);\r\n newParent.appendChild(this.table);\r\n\r\n const tableItems = this.table.querySelectorAll(\".c-table__item\");\r\n\r\n if (!tableItems) {\r\n return;\r\n }\r\n\r\n for (const item of tableItems as any) {\r\n item.addEventListener(\"click\", this.attachTableRowClick);\r\n }\r\n }\r\n}\r\n\r\nexport class TableFactory {\r\n static init() {\r\n const tables = document.querySelectorAll(\".c-table\");\r\n\r\n for (const table of tables as any) {\r\n const t = new Table(table);\r\n }\r\n }\r\n}\r\n","import { hasClass } from \"../helpers/Helper\";\r\n\r\nclass ImageBank {\r\n private imageBank: Element | null = null;\r\n private toggleButtons: NodeListOf | null = null;\r\n private cardBodies: NodeListOf | null = null;\r\n private searchInput: Element | null = null;\r\n\r\n constructor(imageBank: Element) {\r\n this.imageBank = imageBank;\r\n this.toggleButtons = imageBank.querySelectorAll(\".c-image-bank__toggle\");\r\n this.cardBodies = imageBank.querySelectorAll(\".card-body\");\r\n this.searchInput = imageBank.querySelector(\".c-filter__search\");\r\n this.init();\r\n }\r\n\r\n attachToggleButtonClickEvent(e: Event) {\r\n const btn = e.currentTarget as HTMLElement;\r\n const isActive = hasClass(btn, \"t--active\");\r\n\r\n this.resetCards();\r\n\r\n const icon = btn.querySelector(\".c-icon\");\r\n const card = btn.parentElement;\r\n const img = card.querySelector(\".card-img\");\r\n const show = card.querySelector(\".c-icon-label\") as HTMLElement;\r\n const cardBody = card.querySelector(\".card-body\") as HTMLElement;\r\n const offsetTop = btn.offsetTop;\r\n\r\n if (!isActive) {\r\n if (img) {\r\n img.classList.add(\"t--active\");\r\n }\r\n btn.classList.add(\"t--active\");\r\n icon.classList.add(\"t--x\");\r\n cardBody.classList.remove(\"d-none\");\r\n\r\n // Switch label\r\n show.innerText = show.dataset.label;\r\n\r\n const btnHeight = btn.offsetHeight;\r\n const cardHeight = cardBody.offsetHeight;\r\n const cardTop = offsetTop + btnHeight;\r\n\r\n card.style.marginBottom = `calc(${cardHeight}px + 3rem)`;\r\n cardBody.style.top = `${cardTop}px`;\r\n\r\n const inactiveCards = this.imageBank.querySelectorAll(\".card-img:not(.t--active)\");\r\n\r\n for (const imageCard of inactiveCards as any) {\r\n imageCard.classList.add(\"t--opacity\");\r\n }\r\n } else {\r\n card.classList.remove(\"t--active\");\r\n btn.classList.remove(\"t--active\");\r\n icon.classList.remove(\"t--x\");\r\n cardBody.classList.add(\"d-none\");\r\n card.style.marginBottom = \"0\";\r\n\r\n // Switch label\r\n show.innerText = show.dataset.moreLabel;\r\n\r\n const inactiveCards = this.imageBank.querySelectorAll(\".card-img:not(.t--active)\");\r\n\r\n for (const imageCard of inactiveCards as any) {\r\n imageCard.classList.remove(\"t--opacity\");\r\n }\r\n }\r\n }\r\n\r\n attachSearchInputChangeEvent(e: Event) {\r\n const input = e.currentTarget as HTMLElement;\r\n const term = (document.getElementById(input.id)).value;\r\n\r\n var searchResultItems = this.imageBank.querySelectorAll(\".c-image-bank__item\");\r\n var noHitsText = this.imageBank.querySelector(\".c-image-list-no-hits\");\r\n\r\n noHitsText.classList.remove(\"c-image-list-no-hits__show\");\r\n\r\n var counter = 0;\r\n\r\n for (const item of searchResultItems as any) {\r\n const heading = item.querySelector(\".card__subtitle\").innerText;\r\n const body = item.querySelector(\".card-body\").innerText;\r\n\r\n if (heading.toLowerCase().includes(term.toLocaleLowerCase()) || body.toLowerCase().includes(term.toLocaleLowerCase())) {\r\n item.parentElement.classList.remove(\"c-image-bank__item-wrapper-hide\");\r\n counter = counter + 1;\r\n } else {\r\n item.parentElement.classList.add(\"c-image-bank__item-wrapper-hide\");\r\n }\r\n }\r\n\r\n if (counter == 0) {\r\n noHitsText.classList.add(\"c-image-list-no-hits__show\");\r\n }\r\n }\r\n\r\n resetCards() {\r\n for (const btn of this.toggleButtons as any) {\r\n btn.classList.remove(\"t--active\");\r\n const card = btn.parentElement;\r\n const icon = btn.querySelector(\".c-icon\");\r\n const img = card.querySelector(\".card-img\");\r\n card.style.marginBottom = 0;\r\n icon.classList.remove(\"t--x\");\r\n if (img != null) {\r\n img.classList.remove(\"t--active\");\r\n img.classList.remove(\"t--opacity\");\r\n }\r\n }\r\n for (const cardBody of this.cardBodies as any) {\r\n cardBody.classList.add(\"d-none\");\r\n }\r\n }\r\n\r\n setupToggleButtons() {\r\n if (!this.toggleButtons) {\r\n console.warn(\"No toggle buttons present\");\r\n return;\r\n }\r\n\r\n for (const btn of this.toggleButtons as any) {\r\n btn.addEventListener(\"click\", (e: Event) => {\r\n this.attachToggleButtonClickEvent(e);\r\n });\r\n }\r\n }\r\n\r\n setupSearchInput() {\r\n if (!this.searchInput) {\r\n console.warn(\"No search input present\");\r\n return;\r\n }\r\n\r\n this.searchInput.addEventListener(\"change\", (e: Event) => {\r\n this.attachSearchInputChangeEvent(e);\r\n });\r\n\r\n this.searchInput.addEventListener(\"keyup\", (e: Event) => {\r\n this.attachSearchInputChangeEvent(e);\r\n });\r\n\r\n this.searchInput.addEventListener(\"paste\", (e: Event) => {\r\n this.attachSearchInputChangeEvent(e);\r\n });\r\n }\r\n\r\n init() {\r\n this.setupToggleButtons();\r\n\r\n document.addEventListener(\"keyup\", (e) => {\r\n if (e.key === \"Escape\" || e.key === \"Esc\") {\r\n this.resetCards();\r\n }\r\n });\r\n\r\n this.setupSearchInput();\r\n }\r\n}\r\n\r\nexport class ImageBankFactory {\r\n static init() {\r\n const imageBanks = document.querySelectorAll(\".c-image-bank\");\r\n\r\n for (const imageBank of imageBanks as any) {\r\n const t = new ImageBank(imageBank);\r\n }\r\n }\r\n}\r\n","export const timer = 200;\r\nexport const breakpoint = {\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n};\r\nexport const responsiveWidth = breakpoint.lg - 1;\r\n\r\nexport function isResponsive(): boolean {\r\n const x = window.matchMedia(`screen and (max-width:${responsiveWidth}px)`).matches;\r\n var isResponsive = false;\r\n\r\n if (x) {\r\n isResponsive = true;\r\n } else {\r\n isResponsive = false;\r\n }\r\n return isResponsive;\r\n}\r\n\r\nexport function debounce(func, wait, immediate) {\r\n var timeout;\r\n return function() {\r\n var context = this,\r\n args = arguments;\r\n var later = function() {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n\r\nexport const hasClass = (el: any, className: any) => el.classList.contains(className);\r\nexport const hasDataAttributeValue = (el: HTMLElement, dataAttribute: string, val: string) =>\r\n el.getAttribute(dataAttribute).split(\",\").indexOf(val) !== -1;\r\nexport const vw = () => Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\nexport const vh = () => Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\r\n\r\nexport const nextUntil = (elm, selector, filter) => {\r\n var siblings = [];\r\n elm = elm.nextElementSibling;\r\n\r\n // as long as a sibling exists\r\n while (elm) {\r\n\r\n // if we've reached our match, quit\r\n if (elm.matches(selector)) break;\r\n\r\n // if filtering by a selector, check if the sibling matches\r\n if (filter && !elm.matches(filter)) {\r\n elm = elm.nextElementSibling;\r\n continue;\r\n }\r\n\r\n siblings.push(elm);\r\n\r\n elm = elm.nextElementSibling;\r\n }\r\n return siblings;\r\n};\r\n\r\nexport const changeElementType: any = (elm: HTMLElement, newElmType: string) => {\r\n var newElm: HTMLElement = document.createElement(newElmType);\r\n\r\n // move children\r\n while (elm.firstChild) {\r\n newElm.appendChild(elm.firstChild);\r\n }\r\n\r\n // copy attributes\r\n for (let i: number = 0, a: Htmlattrbute = elm.attributes, l: number = a.length; i < l; i++) {\r\n newElm.setAttribute([a[i].name], a[i].value);\r\n }\r\n elm.parentNode.replaceChild(newElm, elm);\r\n};\r\n\r\nexport const animate: any = (elem, style, unit, from, to, time, prop) => {\r\n if (!elem) {\r\n return;\r\n }\r\n var start = new Date().getTime(),\r\n timer = setInterval(function () {\r\n var step = Math.min(1, (new Date().getTime() - start) / time);\r\n if (prop) {\r\n elem[style] = (from + step * (to - from))+unit;\r\n } else {\r\n elem.style[style] = (from + step * (to - from))+unit;\r\n }\r\n if (step === 1) {\r\n clearInterval(timer);\r\n }\r\n }, 25);\r\n if (prop) {\r\n elem[style] = from+unit;\r\n } else {\r\n elem.style[style] = from+unit;\r\n }\r\n}\r\n\r\nexport const docCookies = {\r\n getItem: function (sKey) {\r\n if (!sKey) { return null; }\r\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n },\r\n setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) { return false; }\r\n var sExpires = \"\";\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n },\r\n removeItem: function (sKey, sPath, sDomain) {\r\n if (!this.hasItem(sKey)) { return false; }\r\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n },\r\n hasItem: function (sKey) {\r\n if (!sKey) { return false; }\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n },\r\n keys: function () {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n};\r\n// debounce & resize used like this:\r\n// var resizeHandler = debounce(function () {\r\n// // resize triggered, do something\r\n// }, timer, false);\r\n\r\n// window.addEventListener('resize', resizeHandler);\r\n","import { hasClass } from \"../helpers/Helper\";\r\n\r\nclass Dropdown {\r\n private dropdown: HTMLSelectElement | null = null;\r\n private iconContainer: Element | null = null;\r\n private icon: Element | null = null;\r\n\r\n constructor(dropdown: HTMLSelectElement) {\r\n this.dropdown = dropdown;\r\n this.iconContainer = dropdown.parentElement.querySelector(\".c-select__icon\");\r\n this.icon = this.iconContainer?.querySelector(\".chevron\");\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.dropdown.addEventListener(\"change\", this.attachChangeEvent);\r\n\r\n if (this.iconContainer && this.icon) {\r\n this.dropdown.addEventListener(\"click\", (e: Event) => {\r\n if (this.iconContainer.classList.contains(\"down\")) {\r\n this.iconContainer.classList.remove(\"down\");\r\n this.icon.classList.add(\"bottom\");\r\n } else {\r\n this.iconContainer.classList.add(\"down\");\r\n this.icon.classList.remove(\"bottom\");\r\n }\r\n });\r\n }\r\n\r\n this.setSelectedOption();\r\n document.addEventListener(\"click\", this.onClickOutside);\r\n document.addEventListener(\"keyup\", (e) => {\r\n if (e.key === \"Escape\" || e.key === \"Esc\") {\r\n this.close();\r\n }\r\n });\r\n }\r\n\r\n attachChangeEvent(e: Event) {\r\n e.stopPropagation();\r\n\r\n const changeTarget = e.currentTarget as HTMLSelectElement;\r\n const selectedIndex = changeTarget.selectedIndex;\r\n const selectedOption = changeTarget.options[selectedIndex];\r\n\r\n if (selectedOption.value && selectedOption.value !== \"\") {\r\n window.location.href = selectedOption.value;\r\n }\r\n }\r\n\r\n setSelectedOption() {\r\n const params = new URLSearchParams(window.location.search);\r\n const filter = params.get(\"filter\");\r\n\r\n if (filter) {\r\n for (const option of this.dropdown.options as any) {\r\n if (option.value && option.value.indexOf(`filter=${filter}`) !== -1) {\r\n option.selected = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onClickOutside(e: Event) {\r\n e.stopPropagation();\r\n const expandedSelects = document.querySelectorAll(\".c-select__icon.down\");\r\n const target = e.target as HTMLElement;\r\n\r\n if (!expandedSelects) {\r\n return;\r\n }\r\n\r\n if (!hasClass(target, \"c-select\")) {\r\n for (let i = 0; i < expandedSelects.length; i++) {\r\n const iconContainer = expandedSelects.item(i);\r\n const icon = iconContainer.querySelector(\".icon\");\r\n iconContainer.classList.remove(\"down\");\r\n icon.classList.add(\"bottom\");\r\n }\r\n }\r\n }\r\n\r\n close() {\r\n const expandedSelects = document.querySelectorAll(\".c-select__icon.down\");\r\n\r\n if (!expandedSelects) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < expandedSelects.length; i++) {\r\n const iconContainer = expandedSelects.item(i);\r\n const icon = iconContainer.querySelector(\".icon\");\r\n iconContainer.classList.remove(\"down\");\r\n icon.classList.add(\"bottom\");\r\n }\r\n }\r\n}\r\n\r\nexport class DropdownFactory {\r\n static init() {\r\n const dropdowns = document.querySelectorAll(\".c-select\");\r\n\r\n for (const dropdown of dropdowns as any) {\r\n const t = new Dropdown(dropdown);\r\n }\r\n }\r\n}\r\n","export const FaqBlockFactory = {\r\n init: () => {\r\n const blocks = document.querySelectorAll(\"[data-faq]\") as NodeListOf;\r\n\r\n // If there are no faq blocks, or only one, return.\r\n // Single FAQ items should be expanded on page load.\r\n if (!blocks?.length || blocks.length === 1) {\r\n return;\r\n }\r\n\r\n blocks.forEach((currentBlock) => {\r\n if (currentBlock.getAttribute(\"data-faq\") === \"disabled\") {\r\n return;\r\n }\r\n\r\n let isOpen = false;\r\n\r\n const toggleButton = currentBlock.querySelector(\"[data-faq-toggle]\") as HTMLElement;\r\n const answerContent = currentBlock.querySelector(\"[data-faq-answer]\") as HTMLElement;\r\n const answerInnerContainer = answerContent?.querySelector(\"[data-faq-answer-inner]\") as HTMLElement;\r\n \r\n if (!toggleButton || !answerContent || !answerInnerContainer) {\r\n return;\r\n }\r\n\r\n toggleButton.onclick = () => {\r\n isOpen = !isOpen;\r\n toggleCssClasses(currentBlock, isOpen);\r\n };\r\n });\r\n }\r\n};\r\n\r\nconst toggleCssClasses = (currentBlock: HTMLElement, isOpening: boolean) => {\r\n // Get all elements with classes specified for opening and closing state\r\n const elements = currentBlock.querySelectorAll(\"[data-faq-open-class]\") as NodeListOf;\r\n\r\n elements.forEach(element => {\r\n const closedClass = element.getAttribute(\"data-faq-closed-class\");\r\n const openClass = element.getAttribute(\"data-faq-open-class\");\r\n\r\n if (isOpening) {\r\n element.classList.remove(closedClass);\r\n element.classList.add(openClass);\r\n } else {\r\n element.classList.remove(openClass);\r\n element.classList.add(closedClass);\r\n }\r\n });\r\n}\r\n","export const ImageCoverFactory = {\r\n init: () => {\r\n const components = document.querySelectorAll(\"[data-image-cover]\") as NodeListOf;\r\n\r\n if (!components?.length) {\r\n return;\r\n }\r\n\r\n components.forEach((component) => {\r\n const collapsibleContent = component.querySelector(\"[data-image-cover-collapsible]\") as HTMLImageElement;\r\n const contentContainer = component.querySelector(\"[data-image-cover-content]\") as HTMLElement;\r\n\r\n if (!collapsibleContent || !contentContainer) {\r\n return;\r\n }\r\n\r\n component.onmouseover = () => {\r\n const contentHeight = contentContainer.clientHeight;\r\n\r\n collapsibleContent.style.height = `${contentHeight}px`;\r\n collapsibleContent.classList.remove(\"md:tw-opacity-0\");\r\n };\r\n\r\n component.onmouseout = () => {\r\n collapsibleContent.style.height = \"0px\";\r\n collapsibleContent.classList.add(\"md:tw-opacity-0\");\r\n };\r\n });\r\n }\r\n};\r\n","import { timer, debounce, docCookies } from \"../helpers/Helper\";\r\n\r\n(() => {\r\n const componentName = \"c-cookie-popup\";\r\n const component: HTMLElement = document.querySelector(`.js-${componentName}`);\r\n\r\n if (component != null) {\r\n const cookieOkBtn: HTMLElement = component.querySelector(\".btn--accept\");\r\n const acceptCookieName = \"accept-cookies\";\r\n const isVisibleCssClassName = \"is-visible\";\r\n\r\n const cookieAccepted = (e: Event) => {\r\n e.preventDefault();\r\n const now = new Date();\r\n now.setTime(now.getTime() + 90 * (24 * 60 * 60 * 1000)); // 90 days\r\n\r\n docCookies.setItem(acceptCookieName, true, now, \"/\", \"\", \"\");\r\n component.classList.remove(isVisibleCssClassName);\r\n component.setAttribute(\"aria-hidden\", \"true\");\r\n };\r\n\r\n const init = () => {\r\n const acceptCookie = docCookies.getItem(acceptCookieName);\r\n if (acceptCookie === null) {\r\n var timer = setTimeout(function () {\r\n component.classList.add(isVisibleCssClassName);\r\n component.setAttribute(\"aria-hidden\", \"false\");\r\n clearTimeout(timer);\r\n timer = null;\r\n }, 2000);\r\n }\r\n cookieOkBtn.addEventListener(\"click\", cookieAccepted);\r\n };\r\n\r\n init();\r\n }\r\n})();\r\n","(() => {\r\n const componentName = \"c-blockquote__editor\";\r\n const components = document.querySelectorAll(`.${componentName}`);\r\n\r\n function init() {\r\n for (let i = 0; i < components.length; i++) {\r\n const component = components[i];\r\n\r\n component.innerHTML = \"

\" + component.innerHTML + \"

\"\r\n }\r\n }\r\n\r\n init();\r\n})();\r\n","import * as React from \"react\";\r\nimport ReactPlayer from \"react-player\";\r\nimport { VideoProps } from \"../interfaces/VideoProps\";\r\n\r\nexport default class VideoPlayer extends React.Component {\r\n constructor(props: VideoProps) {\r\n super(props);\r\n }\r\n render() {\r\n const props: VideoProps = this.props;\r\n const height = props.height ?? \"100%\";\r\n const width = props.width ?? \"100%\";\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n// ReactPlayer: https://www.npmjs.com/package/react-player\r\n"],"names":["Navigation_1","$fsx","r","LeftNavigation_1","LanguagePicker_1","Table_1","ImageBank_1","Dropdown_1","faqBlock_1","image_cover_1","React","__importStar","react_dom_1","__importDefault","componentTypes","VideoPlayer","default","componentIdentifier","header","document","querySelector","scrollHeightCutoff","scrolledCssClass","includeHTML","_i","_a","getElementsByTagName","length","elm","hasAttribute","fragment","el","url","localTest","xmlhttp","XMLHttpRequest","status","onreadystatechange","readyState","test","location","href","responseText","outerHTML","open","send","err","getAttribute","NavigationFactory","init","LeftNavigationFactory","LanguagePickerFactory","TableFactory","ImageBankFactory","DropdownFactory","FaqBlockFactory","ImageCoverFactory","addEventListener","event","style","visibility","props","querySelectorAll","node","componentContainer","JSON","parse","render","createElement","scrollHeight","classList","contains","window","pageYOffset","add","remove","Navigation","prototype","initialize","this","menu","menuButton","onMenuToggled","navItems","i","item","linkElement","itemContainer","x","children","childItem","tagName","toLowerCase","setAttribute","nestedItems","push","attachEvents","onClickOutside","onClickInside","console","error","_this","_b","attachedCallbacks","callback","removeEventListener","eventName","listener","this_1","isMobile","onTouchStart","e","onTouchEnd","onNestedItemToggled","_c","eventAttachmentTarget","indexOf","_d","flyoutToggleElement","onFlyoutToggled","preventDefault","clickTarget","currentTarget","targetFlyoutSelector","targets","parentElement","target","focus","forceState","isMouseEnter","hasSubNav","that","toggleBtnClicked","HTMLElement","stopPropagation","cancelBubble","menuEnterTimer","setTimeout","toggleMenu","clearTimeout","shouldForceState","isActive","links","originalPosY_1","documentElement","scrollTop","key","body","innerWidth","clientWidth","activeElements","touchTriggerPosY","changedTouches","clientY","touchEndPosY","deltaY","Math","abs","bind","exports","LeftNavigation","leftNavigation","leftNavItems","toggleElement","subItems","LanguagePicker","languagePickerBtn","languagePicker","activeLanguage","innerHTML","childNodes","nodeName","langPicker","Table","attachTableRowClick","dataset","newParent","tableItems","table","parentNode","insertBefore","appendChild","Helper_1","ImageBank","attachToggleButtonClickEvent","btn","hasClass","icon","resetCards","card","img","show","cardBody","offsetTop","marginBottom","innerText","moreLabel","imageBank","label","btnHeight","offsetHeight","cardHeight","cardTop","top","attachSearchInputChangeEvent","input","term","getElementById","id","value","searchResultItems","noHitsText","counter","heading","includes","toLocaleLowerCase","toggleButtons","cardBodies","setupToggleButtons","warn","setupSearchInput","searchInput","timer","breakpoint","sm","md","lg","xl","responsiveWidth","isResponsive","matchMedia","matches","debounce","func","wait","immediate","timeout","context","args","arguments","callNow","apply","className","hasDataAttributeValue","dataAttribute","val","split","vw","max","vh","clientHeight","innerHeight","nextUntil","selector","filter","siblings","nextElementSibling","changeElementType","newElmType","newElm","firstChild","a","attributes","l","name","replaceChild","animate","elem","unit","from","to","time","prop","start","Date","getTime","setInterval","step","min","clearInterval","docCookies","getItem","sKey","decodeURIComponent","cookie","replace","RegExp","encodeURIComponent","setItem","sValue","vEnd","sPath","sDomain","bSecure","sExpires","constructor","Number","Infinity","String","toUTCString","removeItem","hasItem","keys","aKeys","nLen","nIdx","Dropdown","dropdown","attachChangeEvent","iconContainer","setSelectedOption","close","changeTarget","selectedIndex","selectedOption","options","URLSearchParams","search","get","option","selected","expandedSelects","blocks","forEach","currentBlock","isOpen","toggleButton","answerContent","answerInnerContainer","onclick","toggleCssClasses","isOpening","element","closedClass","openClass","components","component","collapsibleContent","contentContainer","onmouseover","contentHeight","height","onmouseout","acceptCookieName_1","isVisibleCssClassName_1","cookieAccepted_1","cookieOkBtn_1","now","setTime","_super","react_player_1","Component","__extends","width","__assign","src","call"],"mappings":"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"}