{"version":3,"file":"bundle.js","sources":["../../../../../node_modules/a11y-accordion-component/dist/a11y-accordion-component.es.js","../../Private/Javascripts/utils/index.ts","../../Private/Javascripts/components/cookie-notice.ts","../../Private/Javascripts/components/find-care-provider.ts","../../Private/Javascripts/components/footer.ts","../../Private/Javascripts/components/header-search.ts","../../Private/Javascripts/components/mega-menu.ts","../../Private/Javascripts/components/mobile-menu.ts","../../Private/Javascripts/components/header.ts","../../Private/Javascripts/traits/base-slider.ts","../../Private/Javascripts/components/pages-slider.ts","../../Private/Javascripts/components/wizard.ts","../../Private/Javascripts/components/slider.ts","../../Private/Javascripts/components/tooltip.ts","../../Private/Javascripts/components/trigger.ts","../../Private/Javascripts/components/videos.ts","../../Private/Javascripts/components/scroller.ts","../../Private/Javascripts/components/print-page.ts","../../Private/Javascripts/main.ts"],"sourcesContent":["const Accordions=(()=>{const t={enter:13,space:32,pageUp:33,pageDown:34,end:35,home:36,up:38,down:40};class e{constructor(t){this.accordion=t.accordion,this.triggers=this.queryFilter(this.accordion.querySelectorAll(\"[data-controls]\")),[this.firstTrigger]=this.triggers,this.lastTrigger=this.triggers[this.triggers.length-1],this.state=[],this.currentFocusedIndex=null,this.isMultiSelectable=t.isMultiSelectable,this.isCollapsible=t.isCollapsible,this.onFocus=this.onFocus.bind(this),this.onClick=this.onClick.bind(this),this.onKeydown=this.onKeydown.bind(this)}queryFilter(t){const e=[];let i;return t.forEach(t=>{for(i=t.parentNode;i!==this.accordion;){if(i.dataset.component===this.accordion.dataset.component)return;i=i.parentNode}e.push(t)}),e}setState(t){this.state.forEach(e=>{t.currentTarget===e.trigger?this.isCollapsible?e.isExpanded=!e.isExpanded:(e.isDisabled=!0,e.isExpanded=!0):(this.isMultiSelectable||(e.isExpanded=!1),this.isCollapsible||(e.isDisabled=!1))}),this.updateAttributes(t)}onFocus(t){this.state.forEach((e,i)=>{t.target===e.trigger&&(this.currentFocusedIndex=i)})}setFocus(e){e.target.hasAttribute(\"data-controls\")?(e.preventDefault(),e.stopPropagation(),e.which!==t.up&&e.which!==t.pageUp||this.state[this.currentFocusedIndex].prevTrigger.focus(),e.which!==t.down&&e.which!==t.pageDown||this.state[this.currentFocusedIndex].nextTrigger.focus(),e.which===t.home&&this.firstTrigger.focus(),e.which===t.end&&this.lastTrigger.focus()):(e.which!==t.pageUp&&e.which!==t.pageDown||(e.preventDefault(),e.stopPropagation()),e.which===t.pageUp&&this.state[this.currentFocusedIndex].trigger.focus(),e.which===t.pageDown&&this.state[this.currentFocusedIndex].nextTrigger.focus())}addAttributes(){this.accordion.setAttribute(\"role\",\"presentation\"),this.state.forEach(t=>{t.trigger.setAttribute(\"role\",\"button\"),t.trigger.setAttribute(\"tabindex\",0),t.trigger.setAttribute(\"aria-controls\",t.trigger.dataset.controls),t.panel.setAttribute(\"role\",\"region\"),t.panel.setAttribute(\"tabindex\",-1),t.panel.setAttribute(\"aria-labelledby\",t.trigger.id)})}updateAttributes(t){t&&t.preventDefault(),this.state.forEach(t=>{t.trigger.setAttribute(\"aria-expanded\",t.isExpanded),t.trigger.setAttribute(\"aria-disabled\",t.isDisabled),t.panel.setAttribute(\"aria-hidden\",!t.isExpanded)})}removeAttributes(){delete this.accordion.dataset.component,this.accordion.removeAttribute(\"role\"),this.state.forEach(t=>{t.trigger.removeAttribute(\"role\"),t.trigger.removeAttribute(\"tabindex\"),t.trigger.removeAttribute(\"aria-controls\"),t.trigger.removeAttribute(\"aria-expanded\"),t.trigger.removeAttribute(\"aria-disabled\"),t.panel.removeAttribute(\"role\"),t.panel.removeAttribute(\"tabindex\"),t.panel.removeAttribute(\"aria-hidden\"),t.panel.removeAttribute(\"aria-labelledby\")})}onClick(t){this.setState(t)}onKeydown(e){e.which===t.enter&&e.target.hasAttribute(\"data-controls\")&&this.setState(e),e.which===t.space&&e.target.hasAttribute(\"data-controls\")&&this.setState(e),e.which===t.up&&this.setFocus(e),e.which===t.down&&this.setFocus(e),e.which===t.home&&this.setFocus(e),e.which===t.end&&this.setFocus(e),e.which===t.pageUp&&this.setFocus(e),e.which===t.pageDown&&this.setFocus(e)}addEventListeners(t,e){t.addEventListener(\"focus\",this.onFocus),t.addEventListener(\"click\",this.onClick),t.addEventListener(\"keydown\",this.onKeydown),e.addEventListener(\"keydown\",this.onKeydown)}removeEventListeners(t,e){t.removeEventListener(\"focus\",this.onFocus),t.removeEventListener(\"click\",this.onClick),t.removeEventListener(\"keydown\",this.onKeydown),e.removeEventListener(\"keydown\",this.onKeydown)}destroy(){this.state.forEach(t=>{this.removeEventListeners(t.trigger,t.panel)}),this.removeAttributes()}render(){let t,e;this.triggers.forEach((i,s)=>{t=document.getElementById(i.dataset.controls),(e=\"true\"===i.dataset.open)&&(this.currentFocusedIndex=s),this.state.push({trigger:i,prevTrigger:this.triggers[s-1]||this.lastTrigger,nextTrigger:this.triggers[s+1]||this.firstTrigger,panel:t,isExpanded:e,isDisabled:!this.isCollapsible&&e}),this.addEventListeners(i,t)}),this.addAttributes(),this.updateAttributes()}}const i=[];return{render:(t,{isMultiSelectable:s=!0,isCollapsible:r=!0}={})=>{const o=document.getElementById(t),a={accordion:o,isMultiSelectable:s,isCollapsible:r};o.dataset.component=\"accordion\";const n=new e(a);n.render(),i.push(n)},destroy:t=>{i.forEach((e,s)=>{t===e.accordion.id&&(e.destroy(),i.splice(s,1))})},init:()=>{const t={};document.querySelectorAll('[data-component=\"accordion\"]').forEach(i=>{t.accordion=i,t.isMultiSelectable=\"false\"!==i.dataset.multiselectable,t.isCollapsible=\"false\"!==i.dataset.collapsible,new e(t).render()})}}})();export default Accordions;","/* eslint-disable @typescript-eslint/ban-ts-comment */\nexport const addClass = (el: HTMLElement, className: string) => {\n el.classList.add(className);\n};\n\nexport const removeClass = (el: HTMLElement, className: string) => {\n el.classList.remove(className);\n};\n\nexport const hasClass = (el: HTMLElement, className: string) => {\n return el.classList.contains(className);\n};\n\nexport const toggleClass = (el: HTMLElement, className: string) => {\n return el.classList.toggle(className);\n};\n\nexport const trapFocus = (element: HTMLElement) => {\n const focusableEls = element.querySelectorAll(\n 'a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type=\"text\"]:not([disabled]), input[type=\"search\"]:not([disabled]), input[type=\"radio\"]:not([disabled]), input[type=\"checkbox\"]:not([disabled]), select:not([disabled])'\n );\n const firstFocusableEl = focusableEls[0];\n const lastFocusableEl = focusableEls[focusableEls.length - 1];\n const KEYCODE_TAB = 9;\n\n element.addEventListener(\"keydown\", function (e) {\n const isTabPressed = e.key === \"Tab\" || e.keyCode === KEYCODE_TAB;\n\n if (!isTabPressed) {\n return;\n }\n\n if (e.shiftKey) {\n /* shift + tab */ if (document.activeElement === firstFocusableEl) {\n // @ts-ignore\n lastFocusableEl.focus();\n e.preventDefault();\n }\n } /* tab */ else {\n if (document.activeElement === lastFocusableEl) {\n // @ts-ignore\n firstFocusableEl.focus();\n e.preventDefault();\n }\n }\n });\n};\n","/**\n * Cookie Notice\n *\n * This module is a simple implementation of a CookieWall\n * It gives the user only a notice about the use of cookies.\n *\n * By clicking on the agreement on the buttons \"Yes\" and \"no\",\n * the notice will be removed and won't be shown within the life\n * span of the cookie.\n *\n * Basic HTML usage:\n *
\n * No\n * Yes\n *
\n *\n * Future implementation will contain the actual setting of the\n * TrackingCookies by either Google Analytics, GTM or Hotjar.\n */\n\nimport { addClass, removeClass } from \"../utils\";\n\nexport default class CookieNotice {\n protected COOKIE_NAME = \"tracking_allowed\";\n private cookieNotice: HTMLElement;\n private enableTracking: boolean;\n\n /**\n * Constructor\n */\n constructor() {\n this.cookieNotice = document.querySelector(\"[data-cookie-notice]\");\n this.enableTracking = false;\n\n this.init();\n }\n\n private init() {\n if (this.cookieNotice) {\n this.handleUserInteraction();\n\n if (this.checkDoNotTrackOption()) {\n if (this.readCookie(this.COOKIE_NAME) === null) {\n this.showCookieWall();\n } else {\n if (this.readCookie(this.COOKIE_NAME) === \"1\") {\n this.enableTracking = true;\n window.dispatchEvent(new Event(\"site:allow-tracking\"));\n }\n }\n }\n }\n }\n\n createCookie(name: string, value: boolean, days?: number) {\n let expires = \"\";\n\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = \"; expires=\" + date.toUTCString();\n }\n\n document.cookie = name + \"=\" + Number(value) + expires + \"; path=/\";\n }\n\n private readCookie(name: string) {\n const nameEQ = name + \"=\";\n const ca = document.cookie.split(\";\");\n\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === \" \") {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n return null;\n }\n\n private handleUserInteraction() {\n const buttons = this.cookieNotice.querySelectorAll(\"[data-set-cookie]\");\n\n buttons.forEach((button) => {\n button.addEventListener(\"click\", (ev) => {\n ev.preventDefault();\n\n const choice = (ev.currentTarget).getAttribute(\"set-cookie\");\n\n if (choice === \"yes\") {\n window.dispatchEvent(new Event(\"site:allow-tracking\"));\n\n this.enableTracking = true;\n }\n\n this.createCookie(this.COOKIE_NAME, this.enableTracking, 180);\n this.hideCookieWall();\n });\n });\n }\n\n private showCookieWall() {\n addClass(document.body, \"cookie-notice-open\");\n }\n\n private hideCookieWall() {\n removeClass(document.body, \"cookie-notice-open\");\n }\n\n private checkDoNotTrackOption() {\n // Respect do not track for all browsers. Except for IE 10 and 11 where we ignore it\n const doNotTrackIE =\n navigator.appVersion.indexOf(\"MSIE 10\") !== -1 ||\n (navigator.userAgent.indexOf(\"Trident\") !== -1 && navigator.userAgent.indexOf(\"rv:11\") !== -1);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n let doNotTrack = navigator.doNotTrack || navigator.msDoNotTrack || window.doNotTrack;\n doNotTrack = !doNotTrack || doNotTrack == \"unspecified\" || doNotTrack == \"0\";\n\n return doNotTrack || doNotTrackIE;\n }\n}\n","import { addClass, removeClass } from \"../utils\";\n\ntype CareProviderResult = {\n code: number;\n title: string;\n region_code: string;\n region: string;\n};\n\nexport default class FindCareProvider {\n protected COOKIE_NAME = \"careProvider\";\n private form: HTMLFormElement;\n private container: Element;\n private searchContainer: Element;\n private resultsContainer: Element;\n\n constructor(container: Element, searchContainer: Element, resultsContainer: Element) {\n this.container = container;\n this.searchContainer = searchContainer;\n this.resultsContainer = resultsContainer;\n this.form = this.searchContainer.getElementsByClassName(\"form-search-care-provider\")[0];\n\n if (this.form) {\n this.initialize();\n } else {\n console.error(\"No form found in FindCareProvider widget\");\n }\n }\n\n private initialize() {\n const careProviderCookie = document.cookie\n .split(\";\")\n .find((cookie) => cookie.trim().startsWith(this.COOKIE_NAME));\n\n if (careProviderCookie) {\n this.container.setAttribute(\"data-view\", \"results\");\n this.container.getElementsByClassName(\"overlay-cta-widget__header\");\n\n const careProvider = JSON.parse(careProviderCookie.split(\"=\")[1]);\n if (!!careProvider && !isNaN(careProvider?.code) && careProvider?.title !== \"\") {\n this.setCurrentCareProvider(careProvider);\n }\n } else {\n this.container.setAttribute(\"data-view\", \"search\");\n\n document.querySelectorAll(\"[data-care-provider-buttons-holder]\").forEach((buttonHolder) => {\n addClass(buttonHolder, \"no-care-provider-selected\");\n });\n }\n\n this.switchView(this.container.getAttribute(\"data-view\"));\n this.addEventListeners();\n }\n\n private addEventListeners() {\n this.form.addEventListener(\"submit\", (event: Event) => {\n event.preventDefault();\n const formData = new FormData(this.form);\n const zipcode = formData.get(\"zipcode\").slice(0, 4);\n\n fetch(`?type=123&tx_projecttemplate_care_providers[demand][postalCode]=${zipcode}`).then(\n async (response) => {\n const data = await response.json();\n\n this.setCurrentCareProvider(data[0]);\n this.switchView(\"results\");\n }\n );\n });\n\n const viewTriggers = document.querySelectorAll(\"[data-trigger-view]\");\n viewTriggers.forEach((trigger) => {\n trigger.addEventListener(\"click\", (event: Event) => {\n event.preventDefault();\n const view = (event.target).getAttribute(\"data-trigger-view\");\n\n this.switchView(view);\n });\n });\n }\n\n private switchView(view: string) {\n if (view === \"search\") {\n this.container.setAttribute(\"data-view\", view);\n this.searchContainer.setAttribute(\"aria-hidden\", \"false\");\n this.resultsContainer.setAttribute(\"aria-hidden\", \"true\");\n } else {\n this.container.setAttribute(\"data-view\", \"results\");\n this.searchContainer.setAttribute(\"aria-hidden\", \"true\");\n this.resultsContainer.setAttribute(\"aria-hidden\", \"false\");\n }\n }\n\n private setCurrentCareProvider(careProvider: CareProviderResult) {\n careProvider.region = careProvider?.region?.toLowerCase();\n document.cookie = `${this.COOKIE_NAME}=${JSON.stringify(careProvider)};expires=${new Date(\n Date.now() + 1000 * 3600 * 24 * 14\n ).toUTCString()};path=/`;\n\n // Hide all buttons\n document.querySelectorAll(\"[data-care-provider-uid]\").forEach((careProvider) => {\n careProvider.setAttribute(\"aria-hidden\", \"true\");\n });\n\n // Show active button\n const careProviderButton = document.querySelectorAll(`[data-care-provider-uid=\"${careProvider.code}\"]`);\n if (careProviderButton.length > 0) {\n Array.from(careProviderButton).forEach((cpButton) => {\n cpButton.setAttribute(\"aria-hidden\", \"false\");\n });\n }\n\n document.querySelectorAll(\"[data-care-provider-placeholder]\").forEach((placeholder) => {\n placeholder.setAttribute(\"aria-hidden\", \"true\");\n });\n\n document.querySelectorAll(\"[data-care-provider-preview]\").forEach((preview) => {\n preview.textContent = \"Zorgkantoor \" + careProvider.title;\n });\n\n document.querySelectorAll(\"[data-care-provider-region-preview]\").forEach((preview) => {\n preview.textContent = careProvider.region;\n });\n\n document.querySelectorAll(\"[data-care-provider-buttons-holder]\").forEach((buttonHolder) => {\n removeClass(buttonHolder, \"no-care-provider-selected\");\n addClass(buttonHolder, \"care-provider-selected\");\n });\n }\n}\n","import { addClass, removeClass } from \"../utils\";\n\nexport default class Footer {\n private footer: Element;\n constructor() {\n this.footer = document.getElementsByTagName(\"footer\")[0];\n\n if (this.footer) {\n this.initialize();\n }\n }\n\n private initialize() {\n // Check if the cols in the footer are empty\n const cols = this.footer.getElementsByClassName(\"footer-cell\");\n for (let i = 0; i < cols.length; i++) {\n if (cols[i].innerHTML.trim() === \"\") {\n addClass(cols[i], \"hidden\");\n addClass(cols[i], \"lg:block\");\n } else {\n removeClass(cols[i], \"hidden\");\n removeClass(cols[i], \"lg:block\");\n }\n }\n }\n}\n","export default class HeaderSearch {\n private header: HTMLElement;\n private sInput: HTMLInputElement;\n private active: boolean;\n private submitButton: HTMLButtonElement;\n\n constructor() {\n this.active = false;\n this.header = document.getElementById(\"header\");\n this.sInput = document.getElementById(\"search-input\");\n }\n\n private setSearchActive(): void {\n this.active = !this.active;\n\n if (this.active) {\n this.header.classList.add(\"search-bar-open\");\n this.sInput.focus();\n } else {\n this.header.classList.remove(\"search-bar-open\");\n this.sInput.value = \"\";\n }\n }\n\n private submitSearch(event: Event): void {\n if (this.sInput.value.length === 0) {\n event.preventDefault();\n return this.setSearchActive();\n }\n }\n}\n","import { trapFocus } from \"../utils\";\n\nexport default class MegaMenu {\n private hamburgerMenu: HTMLElement;\n private hamburgerMenuButtons: NodeListOf;\n\n constructor() {\n this.hamburgerMenu = document.getElementById(\"mega-menu\");\n this.hamburgerMenuButtons = document.querySelectorAll(\".mega-menu-trigger\");\n\n this.setEventListeners();\n }\n\n private setEventListeners() {\n Array.from(this.hamburgerMenuButtons).map((hamburgerMenuButton) => {\n hamburgerMenuButton.addEventListener(\"click\", () => {\n if (document.body.classList.contains(\"mega-menu-open\")) {\n this.hamburgerMenu.setAttribute(\"aria-hidden\", \"true\");\n } else {\n this.hamburgerMenu.setAttribute(\"aria-hidden\", \"false\");\n trapFocus(this.hamburgerMenu);\n }\n });\n });\n\n this.handleKeydown();\n }\n\n private handleKeydown() {\n window.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\") {\n if (document.body.classList.contains(\"mega-menu-open\")) {\n this.hamburgerMenu.setAttribute(\"aria-hidden\", \"true\");\n document.body.classList.remove(\"mega-menu-open\");\n }\n }\n });\n }\n}\n","export default class MobileMenu {\n private mobileMenuContainer: HTMLElement;\n private mobileMenuTrigger: HTMLElement;\n private activeMenuId: string;\n private mainMenuId = \"menu-0\";\n\n constructor() {\n this.mobileMenuContainer = document.getElementById(\"mobile-menu-container\");\n this.mobileMenuTrigger = document.getElementById(\"mobile-menu-trigger\");\n this.activeMenuId = this.mainMenuId;\n\n this.setPrimaryMenu();\n this.setEventListeners();\n }\n\n private setEventListeners() {\n this.mobileMenuTrigger.addEventListener(\"click\", () => {\n this.setPrimaryMenu();\n if (document.body.classList.contains(\"mobile-menu-open\")) {\n this.mobileMenuTrigger.querySelector(\"span\").innerText = \"Menu\";\n } else {\n this.mobileMenuTrigger.querySelector(\"span\").innerText = \"Sluit\";\n }\n this.mobileMenuTrigger.classList.toggle(\"icon-menu\");\n this.mobileMenuTrigger.classList.toggle(\"icon-cancel\");\n });\n\n Array.from(this.mobileMenuContainer.querySelectorAll(\"li.has-children > button\")).map((submenuButton) => {\n submenuButton.addEventListener(\"click\", () => {\n const submenuId = submenuButton.getAttribute(\"aria-controls\");\n const submenu = document.getElementById(submenuId);\n\n submenu.setAttribute(\"aria-hidden\", \"false\");\n });\n });\n\n Array.from(this.mobileMenuContainer.querySelectorAll(\".sub-level > li > button.back-to-menu-button\")).map(\n (backButton) => {\n backButton.addEventListener(\"click\", () => {\n this.setPrimaryMenu();\n });\n }\n );\n }\n\n private setPrimaryMenu() {\n this.setMenu(this.mainMenuId);\n }\n\n private setMenu(menuId: string) {\n this.activeMenuId = menuId;\n\n this.mobileMenuContainer.querySelector(\"#\" + menuId).setAttribute(\"aria-hidden\", \"false\");\n Array.from(this.mobileMenuContainer.querySelectorAll(\"div > ul\")).map((menu) => {\n if (menu.id !== menuId) {\n menu.setAttribute(\"aria-hidden\", \"true\");\n }\n });\n Array.from(this.mobileMenuContainer.querySelectorAll(\"div > ul > li\")).map((menuItem) => {\n menuItem.setAttribute(\"aria-expanded\", \"false\");\n });\n }\n}\n","import { addClass, removeClass, trapFocus } from \"../utils\";\n\nimport HeaderSearch from \"./header-search\";\nimport MegaMenu from \"./mega-menu\";\nimport MobileMenu from \"./mobile-menu\";\n\nexport default class Header {\n private menubarItemsWithSubmenu: NodeListOf;\n\n constructor() {\n this.menubarItemsWithSubmenu = document\n .getElementById(\"main-nav\")\n .querySelectorAll(\"nav>div>ul>li.has-children\");\n\n this.setEventListeners();\n new HeaderSearch();\n new MegaMenu();\n new MobileMenu();\n }\n\n private setEventListeners() {\n Array.from(this.menubarItemsWithSubmenu).map((menubarItem) => {\n const openMenu = () => {\n const submenuList = menubarItem.querySelector(\"ul\");\n\n this.closeAllSubmenus();\n this.openSubmenu(menubarItem);\n trapFocus(submenuList);\n };\n\n menubarItem.onmouseover = () => {\n openMenu();\n };\n\n menubarItem.onmouseout = () => {\n this.closeAllSubmenus();\n };\n });\n\n this.handleKeydown();\n\n window.addEventListener(\"scroll\", this.checkScrollTop);\n }\n\n private checkScrollTop() {\n if (window.scrollY === 0) {\n removeClass(document.body, \"scrolling\");\n }\n if (window.scrollY > 80) {\n addClass(document.body, \"scrolling\");\n }\n }\n\n private openSubmenu(menuItem) {\n menuItem.setAttribute(\"aria-expanded\", \"true\");\n }\n\n private closeAllSubmenus() {\n Array.from(this.menubarItemsWithSubmenu).map((menuItem) => {\n menuItem.setAttribute(\"aria-expanded\", \"false\");\n });\n }\n\n private isElement(target: EventTarget): HTMLElement {\n return (target).classList !== undefined ? target : undefined;\n }\n\n private handleKeydown() {\n window.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\") {\n this.closeAllSubmenus();\n const parentMenuListItem = this.isElement(e.target).closest(\".has-children\");\n if (parentMenuListItem) {\n (parentMenuListItem.firstElementChild).focus();\n }\n }\n\n // if key arrow down\n if (e.key === \"ArrowDown\") {\n // If target was a menu item\n if (\n this.isElement(e.target) &&\n this.isElement(e.target).classList.contains(\"trigger-submenu\") &&\n Array.from(this.menubarItemsWithSubmenu).includes(this.isElement(e.target).parentElement)\n ) {\n e.preventDefault();\n this.closeAllSubmenus();\n this.openSubmenu(this.isElement(e.target).parentElement);\n const allFocusableElements: HTMLElement[] = Array.from(\n this.isElement(e.target).nextElementSibling.querySelectorAll(\n 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])'\n )\n );\n const currentFocusableElement = allFocusableElements.find(\n (element) => element === document.activeElement\n );\n if (currentFocusableElement === undefined) {\n allFocusableElements[0].focus();\n } else {\n const nextFocusableElement = allFocusableElements.find((element, index) => {\n return element === currentFocusableElement && index < allFocusableElements.length - 1;\n });\n if (nextFocusableElement !== undefined) {\n nextFocusableElement.focus();\n }\n }\n return;\n }\n // if target is anchor link\n if (\n this.isElement(e.target).tagName === \"A\" &&\n this.isElement(e.target).getAttribute(\"role\") === \"menuitem\"\n ) {\n e.preventDefault();\n const menu = this.getMenuFromMenuItem(e.target);\n\n if (menu !== undefined) {\n this.setFocusToNextMenuitem(e.target);\n }\n return;\n }\n }\n if (e.key === \"ArrowUp\") {\n if (\n this.isElement(e.target).tagName === \"A\" &&\n this.isElement(e.target).getAttribute(\"role\") === \"menuitem\"\n ) {\n e.preventDefault();\n const menu = this.getMenuFromMenuItem(e.target);\n\n if (menu !== undefined) {\n this.setFocusToPreviousMenuitem(e.target);\n }\n return;\n }\n }\n });\n }\n\n /**\n * Sets the focus to the next menu item\n * @param {HTMLElement} menu\n * @param {HTMLElement} currentMenuitem\n * @returns {void}\n */\n private setFocusToNextMenuitem(currentMenuitem) {\n let newMenuitem;\n const closestListItem = currentMenuitem.closest(\"li\");\n const closestMenu = closestListItem.closest(\"ul[role='menu']\");\n\n if (closestListItem.nextElementSibling) {\n newMenuitem = closestListItem.nextElementSibling.querySelector('a[role=\"menuitem\"]');\n } else {\n newMenuitem = closestMenu.querySelector(\"li:first-child>[role='menuitem']\");\n }\n\n this.setFocusToMenuitem(newMenuitem);\n }\n\n /**\n * Sets the focus to the previous menu item\n * @param {HTMLElement} menu\n * @param {HTMLElement} currentMenuitem\n * @returns {void}\n */\n private setFocusToPreviousMenuitem(currentMenuitem) {\n let newMenuitem;\n const closestListItem = currentMenuitem.closest(\"li\");\n const closestMenu = closestListItem.closest(\"ul[role='menu']\");\n\n if (closestListItem.previousElementSibling) {\n newMenuitem = closestListItem.previousElementSibling.querySelector('a[role=\"menuitem\"]');\n } else {\n newMenuitem = closestMenu.querySelector(\"li:last-child>[role='menuitem']\");\n }\n\n this.setFocusToMenuitem(newMenuitem);\n }\n\n /**\n * Get the parent menu from the menu item\n * @param {HTMLElement} menuItem\n * @returns {HTMLElement | undefined}\n */\n private getMenuFromMenuItem(menuItem) {\n if (menuItem.parentElement.parentElement.getAttribute(\"role\") === \"menu\") {\n return menuItem.parentElement.parentElement;\n }\n return undefined;\n }\n\n private setFocusToMenuitem(newMenuitem) {\n newMenuitem.focus();\n }\n}\n","export abstract class BaseSlider {\n private _slider: HTMLElement;\n private _buttonNext: HTMLElement;\n private _buttonPrev: HTMLElement;\n private _totalItems: number;\n\n constructor(slider: HTMLElement, totalItems: number, buttonNext: HTMLElement, buttonPrev: HTMLElement) {\n this._slider = slider;\n this._buttonNext = buttonNext;\n this._buttonPrev = buttonPrev;\n this._totalItems = totalItems;\n\n if (!this._slider || !this._buttonNext || !this._buttonPrev) {\n return;\n }\n\n if (this._totalItems > 0) {\n this.setButtonEventListener();\n }\n }\n\n public getSlider(): HTMLElement {\n return this._slider;\n }\n\n public getButtonNext(): HTMLElement {\n return this._buttonNext;\n }\n\n public getButtonPrev(): HTMLElement {\n return this._buttonPrev;\n }\n\n public getTotalItems(): number {\n return this._totalItems;\n }\n\n private setButtonEventListener(): void {\n const slidingAmount = Math.round(this._slider.getBoundingClientRect().width / this._totalItems);\n\n this._buttonNext.addEventListener(\"click\", () => this.scrollElementByAmount(this._slider, slidingAmount));\n this._buttonPrev.addEventListener(\"click\", () => this.scrollElementByAmount(this._slider, -slidingAmount));\n }\n\n private scrollElementByAmount(element: HTMLElement, amount: number): void {\n element.scrollBy({ left: amount, behavior: \"smooth\" });\n }\n}\n","import { BaseSlider } from \"../traits/base-slider\";\n\n/**\n * Pages slider component\n *\n */\nexport default class PagesSlider extends BaseSlider {\n constructor(sliderWrapper: HTMLElement) {\n const slider: HTMLElement = sliderWrapper.querySelector(\".pages-slider\"),\n totalItems: number = sliderWrapper.getElementsByTagName(\"article\").length,\n buttonNext: HTMLElement = sliderWrapper.querySelector(\".pages-slider-button-next\"),\n buttonPrev: HTMLElement = sliderWrapper.querySelector(\".pages-slider-button-prev\");\n\n super(slider, totalItems, buttonNext, buttonPrev);\n\n this.init();\n }\n\n private init() {\n if (this.getTotalItems() <= 1) {\n this.getButtonNext().style.display = \"none\";\n this.getButtonPrev().style.display = \"none\";\n }\n }\n}\n","import { BaseSlider } from \"../traits/base-slider\";\nimport { addClass, hasClass } from \"../utils\";\n\n/**\n * Wizard component\n *\n * See below for the required elements\n * @example\n *
\n * \n *
\n *
// this should use scrol snap styles\n * Item 1\n * Item 2\n * Item 3\n *
\n *
\n * \n *
\n */\nexport default class Wizard extends BaseSlider {\n private wizardItems: HTMLCollectionOf;\n private currentIndex: number;\n private sliderWrapper: HTMLElement;\n\n constructor() {\n try {\n const wizardContainer = document.getElementById(\"wizard-siblings\");\n const slider = document.getElementById(\"wizard-scrollbar\"),\n btnNext = document.getElementById(\"wizard-button-next\"),\n btnPrev = document.getElementById(\"wizard-button-prev\"),\n sliderWrapper = document.getElementById(\"wizard-scrollbar-wrapper\"),\n sliderSlides = slider.getElementsByTagName(\"a\"),\n totalSlides = sliderSlides?.length ?? 0;\n\n super(slider, totalSlides, btnNext, btnPrev);\n\n this.currentIndex = 0;\n this.wizardItems = sliderSlides;\n this.sliderWrapper = sliderWrapper;\n\n if (this.getTotalItems() > 0) {\n this.initializeWizard();\n }\n\n addClass(wizardContainer, \"active\");\n } catch (e: unknown) {\n console.error(\"Error initializing wizard, \" + e);\n }\n }\n\n private initializeWizard() {\n for (let n = 0; n < this.wizardItems.length; n++) {\n if (hasClass(this.wizardItems[n], \"active\")) {\n this.currentIndex = n;\n }\n }\n\n this.resizeObserver();\n\n this.scrollToIndex(this.currentIndex);\n }\n\n private scrollToIndex(index: number): void {\n if (index < 0 || index > this.getTotalItems()) {\n return;\n }\n\n if (window.innerWidth < 768) {\n this.getSlider().scrollTo(\n this.wizardItems[index].offsetLeft - this.wizardItems[index].getBoundingClientRect().width / 2,\n 0\n );\n } else {\n this.getSlider().scrollTo(\n this.wizardItems[index].offsetLeft - this.wizardItems[index].getBoundingClientRect().width,\n 0\n );\n }\n }\n\n private resizeObserver() {\n const resizeObserver = new ResizeObserver(() => {\n const sliderWidth = Array.from(this.wizardItems)\n .map((item) => item.getBoundingClientRect().width)\n .reduce((a, b) => a + (b + 40)); // + 40 is the margin-left of the wizard-item's\n\n if (sliderWidth < this.sliderWrapper.getBoundingClientRect().width) {\n this.getButtonNext().style.display = \"none\";\n this.getButtonPrev().style.display = \"none\";\n } else {\n this.getButtonNext().style.display = \"flex\";\n this.getButtonPrev().style.display = \"flex\";\n }\n });\n\n resizeObserver.observe(this.getSlider());\n }\n}\n","import PagesSlider from \"./pages-slider\";\nimport Wizard from \"./wizard\";\n\n/**\n * Pages slider component\n *\n */\nexport default class Sliders {\n constructor() {\n const pagesSlider = document.getElementsByClassName(\"ce-projectcontentelements_page_slider\");\n\n for (let i = 0; i < pagesSlider.length; i++) {\n new PagesSlider(pagesSlider[i] as HTMLElement);\n }\n\n const widzardSlider = document.getElementById(\"wizard-scrollbar\");\n if (widzardSlider) {\n new Wizard();\n }\n }\n}\n","import { addClass, removeClass } from \"../utils\";\n\nexport default class Tooltip {\n private tooltipClasses: NodeListOf;\n private tooltipHolders: NodeListOf;\n\n constructor() {\n const tooltipClass = \".dictionary-tooltip a\";\n const tooltipHolder = \".dictionary-tooltip\";\n let timer;\n\n this.tooltipClasses = document.querySelectorAll(tooltipClass);\n this.tooltipHolders = document.querySelectorAll(tooltipHolder);\n\n this.tooltipHolders.forEach((tooltipHolder) => {\n const tooltipTitle = tooltipHolder.getAttribute(\"data-tooltip-title\");\n const tooltipDescription = tooltipHolder.getAttribute(\"data-tooltip-description\");\n\n tooltipHolder\n .querySelector(\"a\")\n .insertAdjacentHTML(\n \"beforeend\",\n \"\" +\n '
' +\n '' +\n tooltipTitle +\n \"\" +\n '' +\n tooltipDescription +\n \"\" +\n \"
\"\n );\n });\n\n this.tooltipClasses.forEach((tooltipClass) => {\n tooltipClass.addEventListener(\"mouseover\", (e) => {\n removeClass(e.target, \"active\");\n addClass((e.target).parentElement, \"active\");\n });\n tooltipClass.addEventListener(\"focus\", (e) => {\n removeClass(e.target, \"active\");\n addClass((e.target).parentElement, \"active\");\n });\n\n tooltipClass.addEventListener(\"mouseleave\", (e) => {\n timer = setTimeout(() => {\n // set timer to be able to move with the mouse from the link to the tooltip\n removeClass((e.target).parentElement, \"active\");\n }, 500);\n });\n tooltipClass.addEventListener(\"blur\", (e) => {\n timer = setTimeout(() => {\n // set timer to be able to move with the mouse from the link to the tooltip\n removeClass((e.target).parentElement, \"active\");\n }, 500);\n });\n });\n\n window.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\") {\n this.tooltipHolders.forEach((tooltipHolder) => {\n removeClass(tooltipHolder, \"active\");\n });\n }\n });\n }\n}\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nexport default class Trigger {\n private openClassName = \"-open\";\n\n constructor() {\n const triggers = document.querySelectorAll(\"[data-trigger]\");\n\n for (let i = 0; i < triggers.length; i++) {\n const trigger = triggers[i];\n trigger.addEventListener(\"click\", (e) => {\n this.toggle((e.target).getAttribute(\"data-trigger\"));\n });\n }\n\n window.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\") {\n document.body.classList.forEach((i) => {\n if (i.includes(this.openClassName)) {\n document.body.classList.remove(i);\n }\n });\n }\n });\n }\n\n private toggle(target) {\n if (!target) console.error(\"No target specified\");\n\n document.body.classList.toggle(target + this.openClassName);\n }\n}\n","export default class Videos {\n constructor() {\n const videoElement = document.getElementsByClassName(\"ce-video\");\n\n for (let i = 0; i < videoElement.length; i++) {\n new VideoController(videoElement[i]);\n }\n }\n}\n\nclass VideoController {\n private video: HTMLVideoElement;\n private playButtons: NodeListOf;\n private muteButton: HTMLElement;\n private hasInteractedWithVideo: boolean;\n\n constructor(videoContainer: Element) {\n this.video = videoContainer.querySelector(\"video\");\n this.playButtons = videoContainer.querySelectorAll(\"[data-video-control='play']\");\n this.muteButton = videoContainer.querySelector(\"[data-video-control='mute']\");\n\n const isVideoPlaying = (video) =>\n !!(video.currentTime > 0 && !video.paused && !video.ended && video.readyState > 2);\n\n const play = () => {\n if (isVideoPlaying(this.video)) {\n this.video.pause();\n } else {\n this.video.play();\n }\n this.playButtons.forEach((button) => {\n button.classList.toggle(\"icon-pause\");\n button.classList.toggle(\"icon-play\");\n if (isVideoPlaying(this.video)) {\n // button change aria-label\n button.setAttribute(\"aria-label\", \"Pauzeren\");\n } else {\n button.setAttribute(\"aria-label\", \"Afspelen\");\n }\n });\n };\n\n const mute = () => {\n if (this.video.muted) {\n this.video.muted = false;\n this.muteButton.setAttribute(\"aria-label\", \"Geluid dempen\");\n } else {\n this.video.muted = true;\n this.muteButton.setAttribute(\"aria-label\", \"Geluid aanzetten\");\n }\n this.muteButton.classList.toggle(\"icon-volume\");\n this.muteButton.classList.toggle(\"icon-mute\");\n };\n\n Array.from(this.playButtons).map((button) => button.addEventListener(\"click\", play));\n this.muteButton.addEventListener(\"click\", mute);\n\n this.video.addEventListener(\"play\", () => {\n if (!this.hasInteractedWithVideo) {\n videoContainer.classList.add(\"interacted\");\n }\n this.video.classList.add(\"playing\");\n this.playButtons.forEach((button) => {\n button.setAttribute(\"aria-label\", \"Pauzeren\");\n button.setAttribute(\"aria-hidden\", \"false\");\n });\n this.muteButton.setAttribute(\"aria-hidden\", \"false\");\n });\n }\n}\n","/**\n *\n * Scroller represents an internal link scroller.\n * The href=\"#target\" (anchor) or the data-scroll=\"#target\" (any other element) is the target to scroll to. Make sure an ID is unique...\n * data-scroll-offset=\"#header\" is an optional setting to subtract the height of given element. Only one element allowed (either ID or CLASS)\n *\n * Example:\n * Text\n *\n */\n\nconst Event = {\n on: (event, selector, fn) => {\n // Split on space\n const events = event.split(\" \");\n\n // Check if selector is window pass the window object, otherwise it will be the document providing the selector\n if (selector === window) {\n if (events.length > 0) {\n for (const event of events) {\n window.addEventListener(event, fn, false);\n }\n }\n } else {\n const selectors = document.querySelectorAll(selector);\n\n if (events.length > 0) {\n for (const event of events) {\n if (selectors.length > 0) {\n for (const element of selectors) {\n element.addEventListener(event, fn, false);\n }\n }\n }\n }\n }\n },\n};\n\nexport default class Scroller {\n constructor() {\n Event.on(\"click\", \"[data-scroll]\", (event) => {\n event.preventDefault();\n\n const clickedElement = event.currentTarget;\n const headerHeight = document.querySelector(\"#header\").getBoundingClientRect().height;\n let scroll = true;\n let offset = 0;\n let target: string;\n\n if (clickedElement.getAttribute(\"data-scroll\")) {\n target = clickedElement.getAttribute(\"data-scroll\");\n } else {\n scroll = false;\n console.warn(\"No target found for scroller\");\n }\n\n if (clickedElement.getAttribute(\"data-scroll-offset\")) {\n const offsetElements = document.querySelectorAll(clickedElement.getAttribute(\"data-scroll-offset\"));\n\n if (offsetElements.length > 0) {\n offsetElements.forEach((offsetElement) => {\n offset += offsetElement.getBoundingClientRect().height;\n });\n }\n }\n\n const mediaQuery = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n let scrollBehavior: \"smooth\" | \"auto\" = \"smooth\";\n if (!mediaQuery || mediaQuery.matches) {\n scrollBehavior = \"auto\";\n }\n\n if (scroll && target) {\n window.scrollTo({\n top: document.querySelector(target).getBoundingClientRect().top - offset - headerHeight,\n behavior: scrollBehavior,\n });\n }\n });\n }\n}\n","export default class PrintPage {\n private printButton: HTMLElement;\n\n constructor() {\n this.printButton = document.getElementById(\"print-page\");\n this.printButton.addEventListener(\"click\", () => window.print());\n }\n}\n","import \"../Scss/main.scss\";\n\nimport Accordions from \"a11y-accordion-component\";\nimport CookieNotice from \"./components/cookie-notice\";\nimport FindCareProvider from \"./components/find-care-provider\";\nimport Footer from \"./components/footer\";\nimport Header from \"./components/header\";\nimport Sliders from \"./components/slider\";\nimport Tooltip from \"./components/tooltip\";\nimport Trigger from \"./components/trigger\";\nimport Videos from \"./components/videos\";\nimport Scroller from \"./components/scroller\";\nimport PrintPage from \"./components/print-page\";\nimport { removeClass } from \"./utils\";\n\nclass App {\n constructor() {\n document.addEventListener(\"DOMContentLoaded\", function () {\n new Header();\n removeClass(document.body, \"no-js\");\n });\n document.addEventListener(\"readystatechange\", function () {\n if (document.readyState === \"complete\") {\n Accordions.init();\n new CookieNotice();\n new PrintPage();\n new Scroller();\n new Sliders();\n new Tooltip();\n new Trigger();\n new Videos();\n new Footer();\n\n /**\n * Open the dictonary word when the user clicks on the link\n */\n const urlParam = window.location.href.split(\"#\")[1];\n if (urlParam && urlParam.startsWith(\"word\")) {\n const element = document.getElementById(urlParam);\n if (element) {\n element.click();\n }\n }\n\n document.querySelectorAll(\"[data-component='care-provider-widget']\").forEach((element) => {\n new FindCareProvider(\n element,\n element.getElementsByClassName(\"care-provider-search-container\")[0],\n element.getElementsByClassName(\"care-provider-results-container\")[0]\n );\n });\n }\n });\n }\n}\n\nwindow[\"App\"] = new App();\n"],"names":["Accordions","t","e","queryFilter","i","forEach","parentNode","this","accordion","dataset","component","push","setState","state","currentTarget","trigger","isCollapsible","isExpanded","isDisabled","isMultiSelectable","updateAttributes","onFocus","target","currentFocusedIndex","setFocus","hasAttribute","preventDefault","stopPropagation","which","prevTrigger","focus","nextTrigger","firstTrigger","lastTrigger","addAttributes","setAttribute","controls","panel","id","removeAttributes","removeAttribute","onClick","onKeydown","addEventListeners","addEventListener","removeEventListeners","removeEventListener","destroy","render","triggers","s","document","getElementById","open","constructor","querySelectorAll","length","bind","r","o","a","n","splice","init","multiselectable","collapsible","addClass","el","className","classList","add","removeClass","remove","trapFocus","element","focusableEls","firstFocusableEl","lastFocusableEl","key","keyCode","shiftKey","activeElement","_define_property","obj","value","Object","defineProperty","enumerable","configurable","writable","CookieNotice","cookieNotice","handleUserInteraction","checkDoNotTrackOption","readCookie","COOKIE_NAME","showCookieWall","enableTracking","window","dispatchEvent","Event","createCookie","name","days","expires","date","Date","setTime","getTime","toUTCString","cookie","Number","nameEQ","ca","split","c","charAt","substring","indexOf","button","ev","getAttribute","hideCookieWall","body","doNotTrackIE","navigator","appVersion","userAgent","doNotTrack","msDoNotTrack","querySelector","FindCareProvider","initialize","careProviderCookie","find","trim","startsWith","container","getElementsByClassName","careProvider","JSON","parse","isNaN","code","title","setCurrentCareProvider","buttonHolder","switchView","form","event","zipcode","FormData","get","slice","fetch","then","async","data","response","json","view","searchContainer","resultsContainer","region","toLowerCase","stringify","now","careProviderButton","Array","from","cpButton","placeholder","preview","textContent","console","error","Footer","cols","footer","innerHTML","getElementsByTagName","HeaderSearch","setSearchActive","active","header","sInput","submitSearch","submitButton","MegaMenu","setEventListeners","hamburgerMenuButtons","map","hamburgerMenuButton","contains","hamburgerMenu","handleKeydown","MobileMenu","mobileMenuTrigger","setPrimaryMenu","innerText","toggle","mobileMenuContainer","submenuButton","submenuId","backButton","setMenu","mainMenuId","menuId","activeMenuId","menu","menuItem","Header","menubarItemsWithSubmenu","menubarItem","openMenu","submenuList","closeAllSubmenus","openSubmenu","onmouseover","onmouseout","checkScrollTop","scrollY","isElement","undefined","parentMenuListItem","closest","firstElementChild","includes","parentElement","allFocusableElements","nextElementSibling","currentFocusableElement","nextFocusableElement","index","tagName","getMenuFromMenuItem","setFocusToNextMenuitem","setFocusToPreviousMenuitem","currentMenuitem","newMenuitem","closestListItem","closestMenu","setFocusToMenuitem","previousElementSibling","BaseSlider","getSlider","_slider","getButtonNext","_buttonNext","getButtonPrev","_buttonPrev","getTotalItems","_totalItems","setButtonEventListener","slidingAmount","Math","round","getBoundingClientRect","width","scrollElementByAmount","amount","scrollBy","left","behavior","slider","totalItems","buttonNext","buttonPrev","PagesSlider","style","display","sliderWrapper","super","Wizard","initializeWizard","wizardItems","currentIndex","resizeObserver","scrollToIndex","innerWidth","scrollTo","offsetLeft","ResizeObserver","item","reduce","b","observe","wizardContainer","sliderSlides","btnNext","btnPrev","Sliders","pagesSlider","Tooltip","tooltipClasses","tooltipHolders","tooltipHolder","tooltipTitle","tooltipDescription","insertAdjacentHTML","tooltipClass","setTimeout","Trigger","openClassName","Videos","videoElement","VideoController","videoContainer","video","playButtons","muteButton","hasInteractedWithVideo","isVideoPlaying","currentTime","paused","ended","readyState","play","pause","muted","selector","fn","events","selectors","Scroller","clickedElement","headerHeight","height","scroll","offset","warn","offsetElements","offsetElement","mediaQuery","matchMedia","scrollBehavior","matches","top","PrintPage","printButton","print","urlParam","location","href","click"],"mappings":"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"}