{"version":3,"file":"zoomv.4196.min.js?t=9fe8d1e1107732205cff","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/foundation/TabbedCarousel/TabbedCarousel.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-tab.js"],"sourcesContent":["import { DataLayerTab } from '../../../js/utilities/datalayer/data-layer-tab'\r\n\r\n// TabbedCarousel Component\r\nclass TabbedCarousel {\r\n constructor(el) {\r\n this.el = el\r\n this.domMap = {\r\n $swiper: el.querySelector('.swiper'),\r\n $wrapper: el.querySelector('.swiper-wrapper'),\r\n $tabs: el.querySelectorAll('.tabbed-carousel__tab')\r\n }\r\n this.initSwiper()\r\n this.addListeners()\r\n this.DataLayerTab = new DataLayerTab()\r\n }\r\n\r\n initSwiper() {\r\n this.swiper = new Swiper(this.domMap.$swiper, {\r\n a11y: true,\r\n slidesPerView: 1.05,\r\n spaceBetween: 10,\r\n pagination: {\r\n el: '.swiper-pagination',\r\n clickable: true\r\n },\r\n breakpoints: {\r\n 768: {\r\n spaceBetween: 20\r\n },\r\n 1024: {\r\n slidesPerView: 1\r\n }\r\n }\r\n })\r\n\r\n this.swiper.on('slideChange', () => {\r\n const { $tabs } = this.domMap\r\n $tabs.forEach((tab) => tab.setAttribute('aria-selected', 'false'))\r\n $tabs[this.swiper.activeIndex].setAttribute('aria-selected', 'true')\r\n })\r\n\r\n this.swiper.on('init', this.setWrapperHeight.bind(this))\r\n this.swiper.on('slideChangeTransitionEnd', this.setWrapperHeight.bind(this))\r\n this.swiper.on('resize', this.setWrapperHeight.bind(this))\r\n }\r\n\r\n setWrapperHeight() {\r\n const { $wrapper } = this.domMap\r\n const activeCard = $wrapper.querySelector(\r\n '.swiper-slide-active .tabbed-carousel__card'\r\n )\r\n $wrapper.style.setProperty(\r\n '--active-card-height',\r\n `${activeCard.offsetHeight}px`\r\n )\r\n }\r\n\r\n addListeners() {\r\n const { $tabs } = this.domMap\r\n\r\n $tabs.forEach((tab, index, arr) =>\r\n tab.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n arr.forEach((tab) => tab.setAttribute('aria-selected', 'false'))\r\n tab.setAttribute('aria-selected', 'true')\r\n this.swiper.slideTo(index)\r\n })\r\n )\r\n }\r\n}\r\n\r\nexport default TabbedCarousel\r\n","function DataLayerTab() {\r\n this.horizontalTabUiLocation = 'Horizontal Tab'\r\n this.pillTabUiLocation = 'Tabbed Pill'\r\n this.tabbedCarouselUiLocation = 'Tabbed Carousel'\r\n this.horizontalTabClickButton = document.querySelectorAll('.fdn-tabs__tab')\r\n this.pillTabClickButton = document.querySelectorAll('.fdn-tabbed-pills__pill')\r\n this.carouselTabClickButton = document.querySelectorAll('.tabbed-carousel__tab')\r\n}\r\n\r\nDataLayerTab.prototype._init = function () {\r\n this._TabClick()\r\n}\r\n\r\nDataLayerTab.prototype._TabClick = function () {\r\n this._horizontalTabClick(this.horizontalTabClickButton, this.horizontalTabUiLocation)\r\n this._pillTabClick(this.pillTabClickButton, this.pillTabUiLocation)\r\n this._carouselTabClick(this.carouselTabClickButton, this.tabbedCarouselUiLocation)\r\n}\r\n\r\nDataLayerTab.prototype._horizontalTabClick = function (tabs, horizontalTabUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.fdn-tabs')\r\n let horizontalTabTitle = tabContainer?.querySelector('.fdn-tabs__headline')?.textContent?.trim() || ''\r\n let targetButton = e.target.closest('.fdn-tabs__tab')\r\n let tabTextValue = targetButton.querySelector('.fdn-tabs__title')?.textContent.trim() || ''\r\n let linkText = horizontalTabTitle ? `${horizontalTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: horizontalTabUiLocation\r\n }\r\n \r\n window.dataLayer.push(eventData)\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerTab.prototype._pillTabClick = function (tabs, pillTabUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.fdn-tabbed-pills__content')\r\n let pillTabTitle = tabContainer?.querySelector('.fdn-tabbed-pills__title')?.textContent?.trim() || ''\r\n let tabTextValue = Array.from(e.target.childNodes)\r\n .filter(node => node.nodeType === Node.TEXT_NODE || (node.nodeType === Node.ELEMENT_NODE && !node.classList.contains('visually-hidden')))\r\n .map(node => node.textContent.trim())\r\n .join(' ').trim() || ''\r\n\r\n let linkText = pillTabTitle ? `${pillTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: pillTabUiLocation\r\n }\r\n window.dataLayer.push(eventData)\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerTab.prototype._carouselTabClick = function (tabs, tabbedCarouselUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.wrapper')\r\n let carouselTabTitle = tabContainer?.querySelector('.module-columns-title')?.textContent?.trim() || ''\r\n let tabTextValue = Array.from(e.target.childNodes)\r\n .filter(node => node.nodeType === Node.TEXT_NODE || (node.nodeType === Node.ELEMENT_NODE && !node.classList.contains('tabbed-carousel__tab-description')))\r\n .map(node => node.textContent.trim())\r\n .join(' ').trim() || ''\r\n\r\n let linkText = carouselTabTitle ? `${carouselTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: tabbedCarouselUiLocation\r\n }\r\n \r\n window.dataLayer.push(eventData)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport { DataLayerTab }\r\n"],"names":["TabbedCarousel","el","_classCallCheck","this","domMap","$swiper","querySelector","$wrapper","$tabs","querySelectorAll","initSwiper","addListeners","DataLayerTab","key","value","_this","swiper","Swiper","a11y","slidesPerView","spaceBetween","pagination","clickable","breakpoints","on","forEach","tab","setAttribute","activeIndex","setWrapperHeight","bind","activeCard","style","setProperty","concat","offsetHeight","_this2","index","arr","addEventListener","e","preventDefault","slideTo","horizontalTabUiLocation","pillTabUiLocation","tabbedCarouselUiLocation","horizontalTabClickButton","document","pillTabClickButton","carouselTabClickButton","prototype","_init","_TabClick","_horizontalTabClick","_pillTabClick","_carouselTabClick","tabs","button","_tabContainer$querySe","_targetButton$querySe","tabContainer","target","closest","horizontalTabTitle","textContent","trim","tabTextValue","eventData","event","linkText","uiLocation","window","dataLayer","push","_tabContainer$querySe2","pillTabTitle","Array","from","childNodes","filter","node","nodeType","Node","TEXT_NODE","ELEMENT_NODE","classList","contains","map","join","_tabContainer$querySe3","carouselTabTitle"],"sourceRoot":""}