{"version":3,"sources":["webpack:///./src/js/modules/accordion.js","webpack:///./src/js/modules/partnerSliderV2.js","webpack:///./node_modules/element-closest-polyfill/index.js"],"names":["Module","this","dom","items","el","querySelectorAll","triggers","i","length","addEventListener","toggle","e","item","target","closest","details","querySelector","opened","filter","classList","contains","isOpen","openedDetails","remove","close","checkIfItsNavigationAccordion","add","open","checkIfItsMenuAccordion","scrollIntoView","behavior","block","inline","cta","document","Component","sliderContainer","sliderWrapper","sliderPagination","slides","accordion","marker","imageWrapper","originalWindowWidth","window","innerWidth","initSlider","initAccordion","handleResize","bind","getIsMobile","setMarker","getBulletActive","matchMedia","matches","index","innerHTML","trim","dataset","image","alt","slideContents","maxHeight","Array","from","forEach","itemHeight","offsetHeight","style","height","swiper","Swiper","direction","slidesPerView","autoHeight","pagination","clickable","renderBullet","className","getImageFromSlide","getAltFromSlide","getH3FromSlide","on","bulletActive","removeAriaLabel","updateImage","imageSrc","imageAlt","sourceEl","imgEl","srcset","src","element","removeAttribute","currentTab","bodyRect","getBoundingClientRect","clientRect","marginTop","y","getH3","getParagraph","slide","accordionMobileItemTemplate","Accordion","Element","prototype","msMatchesSelector","webkitMatchesSelector","s","parentElement","parentNode","nodeType"],"mappings":"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","file":"25.46b5fa1fb529b679f740.js","sourcesContent":["import 'element-closest-polyfill';\n\nimport { close, open } from '../helpers';\n\nimport { Component } from '@verndale/core';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n items: [...this.el.querySelectorAll('.accordion-item')],\n triggers: [...this.el.querySelectorAll('.accordion-item__button')]\n };\n }\n\n addListeners() {\n // Using for loop to support IE11\n for (let i = 0; i < this.dom.triggers.length; i++) {\n const el = this.dom.triggers[i];\n el.addEventListener('click', ::this.toggle);\n }\n }\n\n toggle(e) {\n const item = e.target.closest('.accordion-item');\n const details = item.querySelector('.accordion-item__details');\n const opened = this.dom.items.filter(el => el.classList.contains('opened'));\n const isOpen = item.classList.contains('opened');\n\n if (opened.length) {\n const openedDetails = opened[0].querySelector('.accordion-item__details');\n\n opened[0].classList.remove('opened');\n close(openedDetails);\n }\n\n if (isOpen) {\n item.classList.remove('opened');\n this.checkIfItsNavigationAccordion(false);\n close(details);\n } else {\n item.classList.add('opened');\n this.checkIfItsNavigationAccordion(true);\n if (item.classList.contains('mobile-navigation-v2-item')) {\n open(details, 0.6, 'easeIn', () => this.checkIfItsMenuAccordion(item));\n } else {\n open(details);\n }\n }\n }\n\n checkIfItsMenuAccordion(item) {\n if (item.classList.contains('mobile-navigation-v2-item')) {\n item.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'start'\n });\n }\n }\n\n checkIfItsNavigationAccordion(isOpen) {\n const cta = document.querySelector('.mobile-contact-us-v2__cta');\n if (!cta) return;\n\n if (isOpen) {\n return cta.classList.add('opened');\n }\n\n cta.classList.remove('opened');\n }\n}\n\nexport default Module;\n","import Accordion from './accordion';\nimport { Component } from '@verndale/core';\nimport Swiper from 'swiper/js/swiper';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n sliderContainer: this.el.querySelector('.swiper-container'),\n sliderWrapper: this.el.querySelector('.swiper-wrapper'),\n sliderPagination: this.el.querySelector('.partner-slider-v2__item'),\n slides: [...this.el.querySelectorAll('.swiper-slide')],\n accordion: this.el.querySelector('.partner-slider-v2__container--mobile'),\n marker: this.el.querySelector('.marker'),\n imageWrapper: this.el.querySelector('.image-v2__wrapper')\n };\n\n this.originalWindowWidth = window.innerWidth;\n\n this.initSlider();\n\n if (this.dom.accordion) {\n this.initAccordion();\n }\n }\n\n addListeners() {\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n handleResize() {\n if (this.getIsMobile()) return;\n\n if (this.originalWindowWidth === window.innerWidth) {\n return;\n }\n\n this.setMarker(this.getBulletActive());\n }\n\n getIsMobile() {\n return window.matchMedia('(max-width: 1024px)').matches; // this is the breakpoint set for mobile in _variables.scss\n }\n\n getH3FromSlide(index) {\n return this.dom.slides[index].querySelector('h3').innerHTML.trim();\n }\n\n getImageFromSlide(index) {\n return this.dom.slides[index].querySelector('article').dataset.image;\n }\n\n getAltFromSlide(index) {\n return this.dom.slides[index].querySelector('article').dataset.alt;\n }\n\n initSlider() {\n const slideContents = this.el.querySelectorAll('.case-studies-grid-v2__item--text');\n let maxHeight = 0;\n\n Array.from(slideContents).forEach(item => {\n const itemHeight = item.offsetHeight;\n if (itemHeight > maxHeight) {\n maxHeight = itemHeight;\n }\n });\n\n this.dom.sliderWrapper.style.height = `${maxHeight}px`;\n\n this.swiper = new Swiper(this.dom.sliderContainer, {\n direction: 'vertical',\n slidesPerView: 1,\n autoHeight: true,\n pagination: {\n el: this.dom.sliderPagination,\n clickable: true,\n renderBullet: (index, className) => {\n return `
Go to ${this.getH3FromSlide(\n index\n )}
`;\n }\n }\n });\n\n this.swiper.on('slideChange', () => {\n const bulletActive = this.getBulletActive();\n this.setMarker(bulletActive);\n this.removeAriaLabel();\n this.updateImage(bulletActive);\n });\n\n if (!this.getIsMobile()) {\n this.updateImage(this.getBulletActive());\n }\n this.removeAriaLabel();\n\n this.setMarker(this.getBulletActive());\n }\n\n updateImage(bulletActive) {\n const imageSrc = bulletActive.dataset.image;\n const imageAlt = bulletActive.dataset.alt;\n\n const sourceEl = this.dom.imageWrapper.querySelector('source');\n const imgEl = this.dom.imageWrapper.querySelector('img');\n\n sourceEl.srcset = imageSrc;\n imgEl.src = imageSrc;\n imgEl.alt = imageAlt;\n }\n\n getBulletActive() {\n return this.el.querySelector('.swiper-pagination-bullet-active');\n }\n\n removeAriaLabel() {\n this.el\n .querySelectorAll('.swiper-pagination-bullet')\n .forEach((element, index) => {\n element.removeAttribute('aria-label');\n });\n }\n\n setMarker(currentTab) {\n if (currentTab) {\n const bodyRect = this.el\n .querySelector('.swiper-pagination-bullets')\n .getBoundingClientRect();\n\n const clientRect = currentTab.getBoundingClientRect();\n this.dom.marker.style.height = `${clientRect.height}px`;\n this.dom.marker.style.marginTop = `${clientRect.y - bodyRect.y}px`;\n }\n }\n\n accordionMobileItemTemplate(element, opened) {\n return `\n
\n \n
\n ${this.getParagraph(element)}\n
\n
`;\n }\n\n getH3(element) {\n return element.querySelector('h3').innerHTML;\n }\n\n getParagraph(element) {\n return element.querySelector('p').innerHTML;\n }\n initAccordion() {\n this.dom.slides.forEach((slide, index) => {\n this.dom.accordion.querySelector(\n 'div'\n ).innerHTML += this.accordionMobileItemTemplate(\n slide,\n index === 0 ? 'opened' : ''\n );\n });\n new Accordion(this.dom.accordion);\n }\n}\n\nexport default Module;\n","(function () {\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n }\r\n\r\n if (!Element.prototype.closest) {\r\n Element.prototype.closest = function (s) {\r\n var el = this;\r\n\r\n do {\r\n if (el.matches(s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n }\r\n})();"],"sourceRoot":""}